Comment préserver les applications installées lors de la migration d'Ubuntu vers une autre plate-forme?
Question
Je souhaite peut-être passer d'un ancien AMD64 à un nouveau processeur Intel double cœur 32 bits. L'installation n'est pas un problème, mais puis-je transférer toutes les applications installées? Je n'ai pas été capable de trouver quoi que ce soit sur Google jusqu'à présent, sauf dans le cas d'une migration vers une plateforme et un système de fichiers similaires Je ne changerai pas le système de fichiers mais la plateforme sera différente. Y at-il quelque chose sur les lignes du " Monde " fichier dans Gentoo?
La solution
Vous pouvez facilement enregistrer votre liste de packages: voir "man dpkg " et recherchez --set-selections et --get-selections.
La base, cependant, est que pour sauvegarder la liste des paquets:
dpkg --get-selections > liste_packages
Pour restaurer cette liste sur un autre système:
cat package_list | sudo dpkg --set-selections & amp; & amp; sudo apt-get dselect-upgrade
Le passage d’une architecture à une autre signifie que certains packages ne seront pas disponibles. Ils seront ignorés. Par exemple, ia32-libs
ne pourra pas être installé sur un système 32 bits. Cette sélection sera ignorée si vous passez de x86-64 à x86.
Autres conseils
C'est drôle, je me servais de SO comme référentiel howto (rédiger une question et ensuite choisir ma propre réponse), mais au moment où il m'a fallu pour écrire ma propre réponse, j'ai été battu au poinçon trois fois!
Quoi qu'il en soit, voici ce que je retiens pour le compte rendu:
Utilisez les options --get-selections et --set-selections de dpkg pour capturer et sélectionner les packages actuellement installés.
Commencez par exporter votre liste de paquets actuelle sur votre ancien système:
sudo dpkg --get-selections > mypackages.txt
Sélectionnez ensuite cette liste en tant que packages à installer sur votre nouveau système:
sudo dpkg --set-selections < mypackages.txt
(Pour plus de crédit, copiez votre répertoire de cache apt pour minimiser les téléchargements: / var / cache / apt)
Enfin, indiquez à apt de télécharger et d'installer les packages sélectionnés:
sudo apt-get dselect-upgrade
Pour tout ce que vous avez utilisé avec apt-get pour installer, si vous souhaitez créer un enregistrement de ce qui est installé, exécutez ce qui suit:
dpkg -l|awk '/^ii\s*(.*)\s*/ {print $2}'|packages.txt
Ceci créera un fichier texte avec tous les packages que vous avez installés. Ensuite, après l’installation, créez et exécutez un script avec les éléments suivants:
#!/bin/sh
for p in $(cat packages.txt); do apt-get install $p; done
Notes:
1) Étant donné que vous passez de 64 bits à 32 bits, certains packages peuvent ne pas être compatibles. Je voudrais grep packages.txt pour '64' avant d'exécuter le script ci-dessus et trouver des alternatives si elles sont nécessaires.
2) Tout ce que vous avez installé à partir des sources, vous devrez noter et réinstaller à partir des sources.
Bonne chance!
Si (comme moi) vous ne l'aviez pas fait avant de gâcher votre système, vous pouvez démarrer sur un live-cd ou une autre installation et utiliser chroot pour obtenir ces informations.
sudo chroot /path/to/old/system /bin/bash
Ensuite, exécutez la dpkg --get-selections
, et vous pouvez utiliser le fichier résultant pour configurer votre nouveau système.
C’est ce que je fais généralement pour résoudre un problème similaire (migré plusieurs fois vers un nouvel ordinateur portable).
Il y a deux ajouts aux autres réponses à cette question, cela déplacera également vos paramètres update-alternatives
et debconf
, ce qui prend toujours beaucoup de temps pour les réaliser. n'ont pas été transférés.
Sauvegarde sur un ancien système:
sudo apt-get install dselect debconf-utils
mkdir system-selections
update-alternatives --get-selections > system-selections/alternatives-selections
dpkg --get-selections '*' > system-selections/dpkg-selections
sudo debconf-get-selections > system-selections/debconf-selections
Copiez le répertoire de configuration dans le système de news (" scp -r oldsystem: system-selections ~
"):
sudo apt-get install dselect debconf-utils
sudo dselect update
sudo dpkg --set-selections < system-selections/dpkg-selections
sudo debconf-set-selections < system-selections/debconf-selections
sudo apt-get -u dselect-upgrade
sudo update-alternatives --set-selections < system-selections/alternatives-selections
De même, vous pouvez utiliser la même méthode pour effectuer régulièrement des sauvegardes de votre répertoire personnel et des sélections système
(mentionnées ci-dessus) sur un stockage distant. Donc, en cas de vol / vol de votre ordinateur portable, la construction d’un système similaire est assez rapide.
Je ne suis pas sûr qu'il s'agisse d'une réponse, mais je viens de découvrir l'existence de la commande aptitude-create-state-bundle. Oui, c'est une commande. Consultez la page de manuel.
La meilleure façon de procéder consiste à sauvegarder la liste des packages installés sur votre système actuel, puis à utiliser cette liste pour définir les packages à installer sur le nouveau système. Instructions générales sur la sauvegarde et la restauration de vos sélections de packages:
Installer les outils
sudo apt-get install dselect
Liste des packages de sauvegarde
dpkg --get-selections | grep -v deinstall > ubuntu-files
Restaurer les sélections de packages
sudo apt-get update
sudo apt-get dist-upgrade
dpkg --set-selections < ubuntu-files
sudo dselect
Ceci ouvrira une session dselect. Tapez «I» et autorisez dselect à Installez les paquets listés dans votre document ubuntu-files. Une fois terminé, tapez «Q» et appuyez sur la touche Entrée pour quitter dselect.