Acho muito conveniente instalar pacotes em uma nova máquina por meio de arquivos como brewfiles, caskfiles, dockerfiles, package.json etc.
Existe uma alternativa para isso no apt-get, pois eu ainda o uso
através da linha de comando com
apt-get install pkg1 pkg2 pkg3…
?
xargs
:xargs -P1 apt-get install < list-of-packages
.<
redirecionamento é shell. Para vários arquivos, use:cat file1 file2 .. | xargs -P1 apt-get install
Respostas:
Conforme especificado nos comentários da sua pergunta, você pode criar um arquivo de texto simples, chamado
packages.txt
, listando os pacotes a serem instalados:e, em seguida, execute o seguinte comando:
xargs é usado para passar os nomes dos pacotes do
packages.txt
arquivo para a linha de comando. Na página do manual:fonte
Melhorando um pouco a resposta de @ ortomala-lokni, você pode fornecer o arquivo diretamente como argumento para
xargs
:Opcionalmente, você pode dar
xargs
a-r
opção de impedir que aapt-get
chamada seja executada se o seupackages.txt
não contiver caracteres que não sejam espaços em branco.fonte
-a
arg não foi documentada e não parecia trabalho lá:xargs: unrecognized option: a
. Minha saída versão mostrada éBusyBox v1.27.2 (2017-12-12 10:41:50 GMT) multi-call binary.
ele funciona nos dois sentidos para mim, verifique se você possui os xargs mais recentes ou verifique se ele tem a opção -a ou não com a opção de ajuda (xargs --help)
fonte
Além das soluções de script mais gerais, você pode criar um pacote deb.
você vai precisar
equivs-build
, para construir o deb. O deb pode conter apenas dependências. Este é um construtor de deb simplificado.gdebi
para instalar o deb.Isso funcionará em todos os sistemas baseados em debian (sistemas que usam apt / deb-files).
A vantagem de fazer isso com arquivos deb, ao contrário de um shell script, é que é muito mais fácil desfazer, você pode desinstalar um deb ou reconfigurar um deb e reinstalá-lo (isso fará com que os arquivos sejam adicionado e removido).
fonte