Apps nach einer Neuinstallation neu installieren?

8

Ich bin auf Debian und möchte mein Laufwerk neu partitionieren und neu installieren. Gibt es eine einfache Möglichkeit, alle derzeit installierten Pakete nach einer Neuinstallation wiederherzustellen?

Ich denke darüber nach, indem ich eine Backup-App-Liste erstelle:

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

und dann sollte ich nach einer Neuinstallation in der Lage sein:

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

Gibt es einen besseren Weg, dies zu tun?

Nyxgeek
quelle
1
Vergessen Sie nicht, ein Backup von / etc zu erstellen, damit Sie die Konfigurationseinstellungen für diese Pakete problemlos wiederherstellen können.
Anthon

Antworten:

7

Laut dem Debian-Wiki sollten Sie diesen Befehl vor der Neuinstallation ausführen:

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

Führen Sie dann nach der Neuinstallation Folgendes aus:

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

Natürlich sollten Sie /backup/installed-software.logden Namen einer Datei ersetzen , die Sie während der Neuinstallation behalten können. Es wäre gut, es auf einen USB-Stick zu setzen.

Weitere Informationen finden Sie im Wiki: https://wiki.debian.org/ListInstalledPackages

John1024
quelle
Ich habe diese Methode oft verwendet.
Bahamat
Perfekt! Genau das habe ich gesucht. Vielen Dank!
Nyxgeek
3

dpkg -llistet alle installierten Pakete auf (bei Liste, wenn Sie es richtig filtern). Sie können dieselbe Liste mit erhalten dpkg --get-selections(was keine weitere Filterung erfordert).

Dadurch gehen Informationen über manuell oder automatisch installierte Pakete verloren. Es ist sehr praktisch, Bibliotheken und andere Pakete als nur indirekt benötigt zu kennzeichnen. Als automatisch installiert gekennzeichnete Pakete können ohne großen Aufwand entfernt oder durch andere Pakete ersetzt werden. Dpkg kennt keine automatisch installierten Pakete, nur apt.

Um die manuell installierten Pakete aufzulisten, können Sie aptitude verwenden:

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

Ohne Begabung ist es etwas komplizierter.

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

So installieren Sie alle zuvor installierten Pakete:

apt-get install $(cat reinstallList.txt)

Alternativ können Sie die Umgehungsmethode verwenden, um die Liste der installierten Pakete zu kopieren und anschließend die Liste der als automatisch gekennzeichneten Pakete wiederherzustellen. Sichern:

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

Etwas wiederherstellen:

dpkg --set-selections <selections.txt
apt-get dselect-upgrade
apt-mark markauto $(cat automatic.txt)
Gilles 'SO - hör auf böse zu sein'
quelle