Me resulta muy conveniente instalar paquetes en una nueva máquina a través de archivos de paquete como brewfiles, caskfiles, dockerfiles, package.json, etc.
¿Hay una alternativa a esto para apt-get ya que todavía lo uso a
través de la línea de comandos con
apt-get install pkg1 pkg2 pkg3…
?
xargs
:xargs -P1 apt-get install < list-of-packages
.<
es la redirección de shell. Para varios archivos, use:cat file1 file2 .. | xargs -P1 apt-get install
Respuestas:
Como se especifica en los comentarios de su pregunta, puede crear un archivo de texto simple, llamado
packages.txt
, que enumere los paquetes a instalar:y luego ejecuta el siguiente comando:
xargs se usa para pasar los nombres de paquete desde el
packages.txt
archivo a la línea de comando. Desde la página del manual:fuente
Mejorando un poco la respuesta de @ ortomala-lokni, puede dar el archivo directamente como argumento para
xargs
:Opcionalmente, puede dar
xargs
la-r
opción de evitar que laapt-get
llamada se ejecute sipackages.txt
no contiene caracteres que no sean espacios en blanco.fuente
-a
arg no se habían documentado y no parecen funcionar allí:xargs: unrecognized option: a
. Mi versión de salida que se muestra esBusyBox v1.27.2 (2017-12-12 10:41:50 GMT) multi-call binary.
funciona de ambas maneras para mí, asegúrese de tener los últimos xargs o compruebe si tiene la opción -a o no con la opción de ayuda (xargs --help)
fuente
Además de las soluciones de scripting más generales, puede crear un paquete deb.
necesitará
equivs-build
, para construir el deb. El deb solo puede contener dependencias. Este es un generador de Deb simplificado.gdebi
para instalar el deb.Esto funcionará en todos los sistemas basados en Debian (sistemas que usan apt / deb-files).
La ventaja de hacerlo con archivos deb, en comparación con un script de shell, es que es mucho más fácil de deshacer, puede desinstalar un deb, o reconfigurar un deb y volver a instalarlo (esto hará que los archivos sean agregado y eliminado).
fuente