Ubuntu, cómo configurar una nueva máquina como una existente

27

Tengo una configuración de máquina con las aplicaciones que necesito, y me gustaría instalar la misma en una nueva caja de Ubuntu.

¿Existe un script que enumere todas las aplicaciones instaladas, de modo que pueda diferenciar entre los cuadros y así agregar los elementos que faltan?

Gracias de antemano, Chris

Chris Kimpton
fuente

Respuestas:

18

Además de los trucos dpkg mencionados por pjz, es posible que también desee ver etckeeper ( tutorial ), una aplicación que pone su / etc / * bajo control de versión, lo que facilita encontrar cualquier cambio que haya hecho y replicarlo en otro servidores

Además, para una lista más corta que la producida por el método pjz, puede usar

$ deborphan -a --no-show-section > /tmp/mypackagelist

Esto le dará una lista de paquetes que instalarán todos los demás paquetes que necesite como dependencias. Puede ser útil si realmente quiere ver la lista. (dpkg---get selecciones producirán un Loooong lista). Además, la lista es lo suficientemente corta como para agregar nuevas líneas y comentar entradas con '#'. Luego, al instalar los paquetes adicionales, puede hacer

$ grep -v '#' /tmp/mypackagelist | xargs apt-get install -y

De esta manera, si hay algunos paquetes que solo desea instalar en algunas máquinas, no tiene que eliminarlos de la lista de paquetes por completo.

Hamish Downer
fuente
etckeeper se ve realmente interesante (+1).
jkp
17
dpkg --get-selections >/tmp/mypackagelist

debería hacer el truco. Luego, después de asegurarse de que su /etc/apt/sources.list en la nueva máquina tiene el mismo conjunto de entradas que en la anterior, copie mypackagelist en la nueva máquina y haga:

cat mypackagelist | xargs apt-get -y install 

y deberías estar listo para ir.

Tenga en cuenta que la línea dpkg --get-selections también es buena información para poner en su directorio / etc / ocasionalmente, lo que significa que no tiene que molestarse en hacer una copia de seguridad / bin / y / usr / bin / y porque sabe qué paquetes hay en el sistema.

pjz
fuente
Sí, Jeff, pero ¿qué hay de las modificaciones en los archivos de configuración? ¿Qué tal las opciones dpkg-reconfigure? ¿qué hay de los nombres de host ... usuarios, acciones, montajes ... Ver mis respuesta acerca ddabajo
elcuco
2

Ubuntu Forums tiene una buena respuesta

  1. En la máquina anterior: $ dpkg --get-selections> software instalado
    • Esto obtiene su lista de aplicaciones instaladas
  2. En la nueva máquina: $ dpkg --set-selections
    • Esto configura la nueva máquina para instalar los paquetes que no están instalados actualmente en la nueva máquina.
    • Puede ser interesante ver si la nueva máquina tiene algunos paquetes no instalados en la máquina anterior, por lo que puede encontrar el comando dpkg --get-selections> en la nueva máquina y luego usar diff para comparar los archivos de salida de ambos.
  3. Finalmente, en la nueva máquina: $ dselect y se instalarán los paquetes.

Algunos enlaces adicionales de la discusión de los foros:

  1. No olvides tus claves gpg (del mismo hilo)
  2. Cómo instalar todos los paquetes deseados y desinstalar todos los paquetes no deseados
pcapademic
fuente
2

Los mejores comandos dpkg pueden ser [máquina original]

dpkg --get-selections | grep -v deinstall > packages_list

luego al instalar [nueva máquina; después de transferir la lista_paquetes]

sudo dpkg --set-selections < packages_list
sudo apt-get -u dselect-upgrade
Benji
fuente
1

Si no eres un fanático de la CLI (aunque realmente deberías serlo), puedes usar el administrador de paquetes Synaptic para guardar la imagen de los paquetes instalados y usar ese archivo (nuevamente a través de Synaptic) para cargar la nueva máquina. Bajo la opción de archivo / guardar marcas, hay una casilla de verificación llamada "guardar estado completo".

Nerdfest
fuente
Creo que este fue el método que encontró Cory
jbdavid
1

¿Por qué no estás simplemente clonando la máquina usando dd?

elcuco
fuente
1
Esta. Simplemente clone la máquina y cambie el nombre, es, con mucho, la forma más rápida de hacerlo.
pjc50
1

Usar FSArchiver para replicar las máquinas es perfectamente aceptable. De lo contrario, aquí hay pares de comandos útiles, la primera mitad de los cuales también puede agregar a su cron de respaldo:

debconf-get-selections
debconf-set-selections

~

aptitude-create-state-bundle
aptitude-run-state-bundle --unpack

~

dpkg --get-selections
dpkg --clear-selections; dpkg --set-selections

Las ubicaciones que debe replicar son / etc y / var. Los comandos anteriores manipulan algunos archivos en / var directamente, y algunos conffiles en / etc indirectamente a través de debconf. Obtendrá el mismo efecto simplemente replicando esos subárboles y ejecutando aptitude.

Tobu
fuente
0

Supongo que Docker sería la forma de hacer esto ahora: defina los requisitos en un Dockerfile; luego puede ejecutarlo en cualquier host Docker.

Chris Kimpton
fuente