instalar los mismos paquetes de Debian en otro sistema

13

¿Cómo exporto una lista de paquetes Debian instalados en un sistema y luego instalo esos mismos paquetes en un sistema nuevo?

jes5199
fuente

Respuestas:

17

Hacer copias de seguridad:

sudo dpkg --get-selections > /tmp/dpkglist.txt

Restaurar:

sudo dpkg --set-selections < /tmp/dpkglist.txt
sudo apt-get -y update
sudo apt-get dselect-upgrade

Consulte también esta pregunta para obtener información y opciones adicionales: Ubuntu, cómo configurar una nueva máquina como una existente

Tengo lo anterior ejecutándose en un cronjob diario que verifica la dpgklist en SVN como parte de nuestro inventario del servidor. Esto le permitirá mantener un inventario razonable y preciso de los paquetes instalados en sus servidores y es fácil hacer una diferencia rápida de lado a lado para ver si un servidor no tiene un paquete en particular.

servidor de fallas
fuente
1
Recibo este mensaje de error para cada línea de entrada: dpkg: warning: package not in status nor available database at line ...
danorton
de esta manera no funciona desde pocas versiones de ubuntu
QkiZ
10

aptitudetambién satisface este caso de uso y conserva información sobre paquetes "instalados automáticamente" que otros métodos no tienen. Ejecute lo siguiente en la máquina de referencia:

aptitude search -F '%p' '~i!~M' > package_list 

Copiar package_lista la otra máquina y ejecutar

xargs aptitude --schedule-only install < package_list; aptitude install; 
Vihang D
fuente
Solo una nota menor. De acuerdo con el manual de referencia de aptitudes, el campo "paquete" es "expandible" por defecto, por lo aptitude search -F '%p' '~i!~M' > package_listque también debería funcionar bien.
cronos
Con respecto a la copia de seguridad del paquete: vea el enchufe para deborphan@ bogdan.org.ua/2013/10/18/…
TomRoche
[insert your own linebreaks, since http://serverfault.com/editing-help#linebreaks lies] Con respecto a la restauración del paquete: esto deberá hacerse como root, ¿no? Si es así, <br/> El xargsen su línea de comando de restauración = xargs aptitude --schedule-only install <package_list; instalación de aptitud; me hace querer saber, <br/> 1. ¿Por qué aptitudenecesita el xargs? dpkg --set-selectionsno. <br/> 2. Suponiendo aptitude que necesita xargs, ¿dónde poner uno o más sudos en su línea de comando de restauración? O bien, obtenga la raíz para ejecutar esa línea, suponiendo que sea necesario.
TomRoche
0

Esa es una buena idea, y también puede configurar un servidor con apt-proxy si tiene la costumbre de hacerlo.


fuente
Después de jugar con varios proxies para apt, terminé decidiéndome por apt-cacher-ng. apt-cacher-ng es muy simple de configurar y desde varias cuentas parece ser más robusto que el apt-proxy original. Sin embargo, cada persona tiene su propio favorito. unix-ag.uni-kl.de/~bloch/acng
faultyserver
Mi voto es por aproximadamente, es el único que no es una especie de locura.
womble
Interesante ... En realidad no he probado ninguna de las alternativas.
0

la respuesta de los servidores de falla funcionó para mí solo después de ejecutar un comando diferente según http://rayslinux.blogspot.de/2012/10/ubuntu-1210-dpkg-warning-package-not-in.html

sudo apt-get install dselect sudo dselect access sudo dselect update

Antes de eso corriendo

sudo apt-get dselect-upgrade

solo regresó

[...]
dpkg: advertencia: el paquete no está en la base de datos en la línea 302: xfonts-utils
dpkg: advertencia: se encontraron paquetes desconocidos; esto puede significar que la base de datos disponible está desactualizada y necesita actualizarse mediante un método frontend
pi @ FHEM-new: / tmp $ sudo apt-get dselect-upgrade
Lectura de listas de paquetes ... Hecho
Creación del árbol de dependencias
Lectura de información de estado ... Hecho
0 actualizado, 0 recién instalado, 0 para eliminar y 0 no actualizado.

Intenté instalar los mismos paquetes desde mi Raspberry Pi anterior (ejecutando Raspbian GNU / Linux 7 (wheezy)) en mi nuevo Raspberry (Raspbian GNU / Linux 8 (jessie)).

adiuva
fuente