Comment transférer des packages et des paramètres installés d'une distribution à une autre?

15

J'explore l'apprentissage et le système Linux via VirtualBox depuis quelques mois et j'ai décidé que je voulais en faire mon système d'exploitation principal et l'installer sur mon disque dur. J'ai un certain nombre de fichiers, de packages et de paramètres (tels que des modifications de .bashrc) que j'aimerais apporter lorsque je l'installe directement sur mon disque dur, alors comment faire? De plus, en ce moment j'utilise Ubuntu si je décide de passer à une distribution Debian ou RPM similaire, RHEL serait-ce le même processus? Quelles considérations devrais-je prendre en compte le cas échéant?

Tony
la source
Ubuntu est un dérivé de Debian. Tous les dérivés Debian sont très similaires, car dans les paquets ont tous le même nom, la gestion des paquets, config etc. et tous très similaires. Cependant, les distributions Red Hat comme Fedora, CentOS, etc. ne sont pas aussi similaires en matière de gestion de paquets, bien qu'elles soient fondamentalement le même logiciel. Cependant, vous devriez pouvoir pour la plupart copier les paramètres / config, etc. des OS de la famille Debian vers ceux de la famille RH.
Faheem Mitha

Réponses:

31

La gestion des packages est l'un des principaux différenciateurs entre les distributions. Entre les distributions non liées, vous ne pourrez rien faire automatiquement. Différentes distributions décomposent le logiciel en différents ensembles de packages et utilisent des noms différents.

Entre des machines exécutant la même version de la même distribution, vous pouvez réaliser une installation similaire en reproduisant la liste des packages installés. Sur les systèmes utilisant apt, tels que Debian et dérivés (Ubuntu, Mint,…), utilisez apt-clone. Voir Comment puis-je répliquer les sélections de paquets installés d'un système Debian à un autre? (Debian Wheezy) pour les commandes exactes. En bref, sur l'ancienne machine:

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

Copiez foo.apt-clone.tar.gzsur la nouvelle machine et exécutez

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

apt-clonepeut fonctionner entre des distributions liées, par exemple Debian et Ubuntu. Utilisez restore-new-distroau lieu de restoredans ce cas. Si cela échoue, utilisez la méthode manuelle avec dpkg --get-selectionset apt-mark, et jouez avec la liste des paquets jusqu'à ce que apt soit satisfait.

Pour vos propres paramètres, c'est plus simple: copiez simplement les fichiers de points depuis votre répertoire personnel. En règle générale, configurez les éléments qui ne sont pas liés au matériel de votre compte, pas à l'échelle du système; cela facilitera leur copie sur une autre machine.

Gilles 'SO- arrête d'être méchant'
la source
L'avantage par rapport à la deuxième réponse ci-dessous est que cette méthode est plus rapide car Internet lent est ignoré et USB 3 plus rapide peut être utilisé. Il pourrait aussi y avoir d'autres avantages ???
WinEunuuchs2Unix
@ WinEunuuchs2Unix La liste des packages n'est que de quelques kilo-octets. Le transférer sur Internet prend moins de temps que de trouver un dongle USB, sans parler de le monter et de sélectionner les fichiers à copier, etc.
Gilles 'SO- arrête d'être méchant'
@ Gilles me stupide. Je pensais que foo.apt-clone.tar.gzc'était une boule de tar compressée de tous les binaires installés. Je ne savais pas que c'était simplement une liste de paquets installés. Comprend-il également les numéros de version retenus?
WinEunuuchs2Unix
Beaucoup d'erreurs.... 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 Je pense qu'apt-clone inclut tous les états de dpkg, y compris les paquets conservés. Notez que si vous souhaitez cloner une installation complète, c'est une tout autre affaire: le point d'apt-clone est lorsque vous avez plus de bande passante entre la machine 2 et un miroir de package qu'entre la machine 1 et la machine 2 (ou une bande passante moins coûteuse, dans que vous ne voulez pas occuper la machine 1 pendant que vous configurez la machine 2). Apt-clone fonctionne mieux lorsque toutes les versions de package sur la machine source sont installables.
Gilles 'SO- arrête d'être méchant'
10

Si vous restez dans la famille Debian, oui, vous pouvez les transférer très facilement. Listez simplement les packages actuellement installés, enregistrez-les dans un fichier, puis lisez ce fichier pour les réinstaller:

  1. Enregistrez les packages installés dans le fichier installed:

    dpkg -l | grep ^ii | awk '{print $2}' > installed
    
  2. Dans votre nouvelle distribution basée sur Debian, installez les paquets enregistrés:

    sudo apt-get install $(cat installed)
    

Alternativement, vous pouvez utiliser un outil GUI pour cela. Mint en a une très jolie qui s'appelle mintbackup:

capture d'écran de mintbackup

Ensuite, à partir de la nouvelle installation:

une autre capture d'écran de mintbackup

terdon
la source
Serait dpkg --get-selections | awk '$2 == "install" {print $1}' > instlpkgéquivalent? Et comment utiliser yum install alien sur RHEL / Fedora / CentOS?
Sergiy Kolodyazhnyy
1
Ne vous contentez pas de reproduire des sélections, reproduisez la liste des packages installés automatiquement, sinon cela devient compliqué. Il y a apt-clonemaintenant, qui automatise cela. Voir unix.stackexchange.com/questions/191662/…
Gilles 'SO- arrête d'être méchant'
Il serait également utile de copier les packages conservés. c'est-à-dire que Conky 1.9 est tenu de manière à ce que Conky 1.10 ne mouille pas les choses. Une partie de la réponse serait dans le fil AskUbuntu .
WinEunuuchs2Unix
1
Cette réponse est plus rapide que la réponse la plus votée et n'a pas la multitude de messages d'erreur comme apt-cloneci-dessus. 1/3 de ces erreurs publiées dans le commentaire ci-dessus.
WinEunuuchs2Unix
Bien paraître, mais est-il possible d'utiliser mintbackup dans Ubuntu 18.04?
WebComer
1

Les paramètres sont généralement stockés dans /etc/. etckeeper peut être pratique. Son objectif principal est de se transformer /etc/en référentiel git, mais il filtre également certaines parties que vous ne voudriez pas copier, si je comprends bien. Donc, si vous êtes familier git, vous feriez mieux d'utiliser etckeeperpour fusionner vos modifications dans la nouvelle installation.

Rolf
la source