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

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.


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.


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

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

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".


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

1

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


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.


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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.