Réinstaller des applications après une nouvelle installation?

8

Je suis sur Debian et je souhaite re-partitionner mon disque et réinstaller. Existe-t-il un moyen simple de restaurer tous les packages actuellement installés après une nouvelle installation?

Je pense à le faire en créant une liste d'applications de sauvegarde:

#generate list of installed packages
dpkg -l | awk '{ print $2 }' ORS="\n" | tail -n +6 > reinstallList.txt

puis après avoir fait une nouvelle installation, je devrais pouvoir faire:

#install from backup at reinstallList.txt
sudo apt-get  install $(< reinstallList.txt)

Existe-t-il une meilleure façon de le faire?

nyxgeek
la source
1
N'oubliez pas de faire une sauvegarde de / etc afin de pouvoir facilement restaurer les paramètres de configuration de ces packages.
Anthon

Réponses:

7

Selon le wiki Debian , vous devez exécuter cette commande avant la réinstallation:

dpkg --get-selections > /backup/installed-software.log

Ensuite, après la réinstallation, exécutez ceci:

dpkg --set-selections < /backup/installed-software.log
apt-get dselect-upgrade

De toute évidence, vous devez remplacer /backup/installed-software.logpar le nom d'un fichier que vous pouvez conserver pendant le processus de réinstallation. Le mettre sur une clé USB serait bien.

Pour plus d'informations, consultez le wiki: https://wiki.debian.org/ListInstalledPackages

John1024
la source
J'ai utilisé cette méthode plusieurs fois.
bahamat
Parfait! Ceci est exactement ce que je cherchais. Merci!
nyxgeek
3

dpkg -lrépertorie tous les packages installés (dans la liste lorsque vous le filtrez correctement). Vous pouvez obtenir la même liste dpkg --get-selections(qui ne nécessite aucun filtrage supplémentaire).

Cela perd des informations sur les packages installés manuellement ou automatiquement. Il est très pratique d'avoir les bibliothèques et autres packages marqués comme étant seulement indirectement nécessaires. Les packages marqués comme installés automatiquement peuvent être supprimés ou remplacés par différents packages sans problème. Dpkg ne connaît pas les packages installés automatiquement, seul apt le sait.

Pour répertorier les packages installés manuellement, vous pouvez utiliser aptitude:

aptitude search -F %p '~i !~M' >reinstallList.txt

Sans aptitude, c'est un peu plus compliqué.

dpkg --get-selections | awk '$2 == "install" {print $1}' >installed.txt
apt-mark showauto >automatic.txt
comm -32 installed.txt automatic.txt >reinstallList.txt

Pour installer tous les packages précédemment installés:

apt-get install $(cat reinstallList.txt)

Vous pouvez également utiliser la méthode plus détournée pour copier la liste des packages installés, puis restaurer la liste des packages marqués comme automatiques. Pour sauvegarder:

dpkg --get-selections >selections.txt
apt-mark showauto >automatic.txt

Restaurer:

dpkg --set-selections <selections.txt
apt-get dselect-upgrade
apt-mark markauto $(cat automatic.txt)
Gilles 'SO- arrête d'être méchant'
la source