¿Cómo transfiero los paquetes y configuraciones instalados de una distribución a otra?

15

He estado explorando el aprendizaje y sobre el sistema Linux a través de VirtualBox durante unos meses y decidí que quiero convertirlo en mi sistema operativo principal e instalarlo en mi disco duro. Tengo una serie de archivos, paquetes y configuraciones (como cambios a .bashrc) que me gustaría traer cuando lo instale directamente en mi HDD, entonces, ¿cómo puedo hacer esto? Además, ahora estoy ejecutando Ubuntu si decido cambiar a una distribución similar de Debian o RPM, basada en RHEL, ¿sería el mismo proceso? ¿Qué consideraciones tendría que tener en cuenta si hubiera alguna?

Tony
fuente
Ubuntu es un derivado de Debian. Todos los derivados de Debian son muy similares, ya que en los paquetes todos tienen el mismo nombre, la gestión de paquetes, la configuración, etc. y todos muy similares. Sin embargo, las distribuciones de Red Hat como Fedora, CentOS, etc. no son tan similares en asuntos como la administración de paquetes, aunque básicamente son el mismo software. Sin embargo, en su mayor parte, debería poder copiar configuraciones / configuraciones, etc. de los sistemas operativos de la familia Debian a los de la familia RH.
Faheem Mitha

Respuestas:

31

La gestión de paquetes es uno de los principales diferenciadores entre distribuciones. Entre distribuciones no relacionadas, no podrá hacer nada automáticamente. Las diferentes distribuciones dividen el software en diferentes conjuntos de paquetes y usan diferentes nombres.

Entre las máquinas que ejecutan la misma versión de la misma distribución, puede lograr una instalación similar reproduciendo la lista de paquetes instalados. En sistemas que usan apt, como Debian y derivados (Ubuntu, Mint, ...), use apt-clone. Consulte ¿Cómo replicar las selecciones de paquetes instalados de un sistema Debian a otro? (Debian Wheezy) para los comandos exactos. En pocas palabras, en la vieja máquina:

sudo apt-get install apt-clone
apt-clone clone foo

Copiar foo.apt-clone.tar.gza la nueva máquina y ejecutar

sudo apt-get install apt-clone
sudo apt-clone restore foo.apt-clone.tar.gz

apt-clonepuede funcionar entre distribuciones relacionadas, por ejemplo, Debian y Ubuntu. Usar en restore-new-distrolugar de restoreen ese caso. Si eso falla, use el método manual con dpkg --get-selectionsy apt-mark, y juegue con la lista de paquetes hasta que apt esté satisfecho.

Para su propia configuración, es más simple: simplemente copie los archivos de puntos de su directorio de inicio. Como regla general, configure cosas que no estén relacionadas con el hardware de su cuenta, no en todo el sistema; eso facilitará copiarlos a otra máquina.

Gilles 'SO- deja de ser malvado'
fuente
La ventaja sobre la segunda respuesta a continuación es que este método es más rápido porque se omite Internet lento y se puede usar USB 3 más rápido. ¿Puede haber otras ventajas también?
WinEunuuchs2Unix
@ WinEunuuchs2Unix La lista de paquetes es de solo unos pocos kilobytes. Transferirlo a través de Internet lleva menos tiempo que encontrar un dongle USB, y mucho menos montarlo y seleccionar los archivos para copiar, etc.
Gilles 'SO- deja de ser malvado'
@ Gilles tonto conmigo. Pensé que foo.apt-clone.tar.gzera una bola de alquitrán comprimido de todos los binarios instalados. No me di cuenta de que era simplemente una lista de paquetes instalados. ¿Incluye también los números de versión retenidos?
WinEunuuchs2Unix
Muchos errores.... version mismatch: libgl1-mesa-dri, libmirprotobuf3, xserver-xorg-legacy, libgbm1, libmirclient9, xserver-common, libxatracker2, gnome-software, libmircommon7, libwayland-client0, mesa-vdpau-drivers, adobe-flash-properties-gtk, libwayland-server0, xserver-xorg-core, conky-all, libgles2-mesa, libmircore1, libosmesa6, x11proto-core-dev, dkms, libgl1-mesa-glx, adobe-flashplugin, libegl1-mesa, gnome-software-common, libglapi-mesa, libwayland-cursor0, ubuntu-software, libwayland-egl1-mesa Note that you can use --with-dpkg-repack to include those packges in the clone file.
WinEunuuchs2Unix
@ WinEunuuchs2Unix Creo que apt-clone incluye todo el estado dpkg, incluidos los paquetes retenidos. Tenga en cuenta que si desea clonar una instalación completa, es un asunto completamente diferente: el punto de apt-clone es cuando tiene más ancho de banda entre la máquina 2 y un espejo de paquete que entre la máquina 1 y la máquina 2 (o ancho de banda menos costoso, en que no desea mantener la máquina 1 demasiado ocupada mientras configura la máquina 2). Apt-clone funciona mejor cuando todas las versiones del paquete en la máquina fuente son instalables.
Gilles 'SO- deja de ser malvado'
10

Si se queda dentro de la familia Debian, sí, puede transferirlos muy fácilmente. Simplemente enumere los paquetes actualmente instalados, guárdelos en un archivo y luego lea ese archivo para reinstalarlos:

  1. Guarde los paquetes instalados en el archivo installed:

    dpkg -l | grep ^ii | awk '{print $2}' > installed
    
  2. En su distribución basada en Debian recién instalada, instale los paquetes guardados:

    sudo apt-get install $(cat installed)
    

Alternativamente, podría usar una herramienta GUI para esto. Mint tiene una muy bonita llamada mintbackup:

captura de pantalla de mintbackup

Luego, desde la nueva instalación:

otra captura de pantalla de mintbackup

terdon
fuente
Sería dpkg --get-selections | awk '$2 == "install" {print $1}' > instlpkgequivalente? Además, ¿qué tal usar yum install alien en RHEL / Fedora / CentOS?
Sergiy Kolodyazhnyy
1
No solo reproduzca selecciones, reproduzca la lista de paquetes instalados automáticamente, de lo contrario se volverá desordenado. Ahora hay apt-clone, lo que automatiza esto. Ver unix.stackexchange.com/questions/191662/…
Gilles 'SO- deja de ser malvado'
Sería útil copiar también los paquetes retenidos. es decir, Conky 1.9 se mantiene para que Conky 1.10 no arruine las cosas. Parte de la respuesta estaría en el hilo de AskUbuntu .
WinEunuuchs2Unix
1
Esta respuesta es más rápida que la respuesta más votada y no tiene la multitud de mensajes de error como los apt-cloneanteriores. 1/3 de esos errores publicados en el comentario anterior.
WinEunuuchs2Unix
Se ve genial, pero ¿es posible usar mintbackup en ubuntu 18.04?
WebComer
1

La configuración generalmente se almacena en /etc/. Etckeeper puede ser útil. Su objetivo principal es convertirse /etc/en un repositorio git, pero también filtra algunas partes que no querrá copiar, si entiendo bien. Por lo tanto, si está familiarizado git, es mejor que utilice etckeeperpara fusionar sus cambios en la nueva instalación.

Rolf
fuente