Paketliste archivieren

Aus wiki.archlinux.de

Dieser Artikel gibt eine kurze Hilfestellung, wie man sich eine Liste der aktuell über Pacman installierten Pakete anlegt.

Mit Hilfe dieser Liste hat man, nach einer Neuinstallation, eine einfache Möglichkeit wieder den "alten" Softwarestand zu erreichen.

Dabei werden nur die Namen der Pakete gespeichert, dass heißt, zur eigentlich Installation ist eine Internetverbindung notwendig und alle benötigten Repositorien müssen in der Datei /etc/pacman.conf aktiviert sein.

Der Vorteil dieser Variante liegt dabei darin, dass man nicht die gesamten Pakete archivieren muss und das die Pakete automatisch in der aktuellen Version installiert werden.

Paketliste erstellen

Um eine Liste aller explizit installierten Pakete anzulegen ist der folgende Befehl nötig.

pacman -Qeq > Pakete.txt

Der einzelne Befehl erfüllt dabei folgende Funktion:

" pacman -Qeq ": Pacman gibt eine Liste aller explizit installierten Pakete ohne (q)Versionsnummer aus.

" > Pakete.txt ": schreibt die so enstandene Paketliste in die Datei Pakete.txt im aktuellen Verzeichnis (daher muss der Nutzer, welcher den Befehl ausführt, in diesem Verzeichnis Schreibrechte besitzen).


Bei dieser Vorgehensweise werden, wie oben beschrieben, nur die explizit installierten Pakete in die Liste geschrieben. Daraus entsteht jedoch kein Nachteil, da Pacman bei der Installation automatisch die Abhängigkeiten auflöst.

Möchte man jedoch auch noch die Pakete in der Liste aufführen, die als Abhängigkeit installiert wurden, so kann man diese mit dem Befehl:

pacman -Qdq >> Pakete.txt 

an die Datei Pakete.txt anhängen.

Wichtig: Bei diesem Aufruf sind zwei "Größer-Zeichen" ( >> ) zu verwenden! (Wird nur eines verwendet, so wird der bestehende Dateiinhalt überschrieben!)

Um zu vermeiden, dass auch aus dem AUR installierte Pakete mit in die Liste ausgeben werden kann man

 pacman -Qqen > Pakete.txt 

verwenden Hierdurch werden unnötige Fehlermeldungen bei der späteren Installation mit Hilfe der Liste vermieden.

System wiederherstellen

Man sollte diese Wiederherstellung möglichst in einem "frischen" System vornehmen (direkt nach der Basisinstallation).

Durch das beschriebene Vorgehen werden nur die Pakete aus "Pakete.txt" installiert, es erfolgt keine Deinstallation von Paketen die nicht in der Paketliste enthalten sind. Daher ist es mit dem hier beschriebenen Vorgehen nicht grundsätzlich möglich einen alten Softwarestand wiederherzustellen (denn zwischenzeitlich installierte Software wird nicht gelöscht).


Auf das neue System muss man jetzt nur noch die vorher erstellte Datei Pakete.txt übertragen.

Die Installation der in der Datei gespeicherten Pakete erfolgt nun mit dem Befehl:

pacman -S $(cat Pakete.txt)

Dieser Befehl muss in dem Verzeichnis ausgeführt werden in dem sich die Datei "Pakete.txt" befindet, oder man muss den kompletten Pfadnamen (z.B. "pacman -S $(cat /home/nutzer/Backup/Pakete.txt)") setzen.

Darüber hinaus muss der Befehl als "root" ausgeführt werden.

Man kann die Wiederherstellung auch im Zuge des pacstrap bei der Neuinstallation vornehmen:

pacstrap /mnt $(< Pakete.txt)

Dies setzt allerdings voraus, dass die Paketliste zuvor z.B. via ssh auf den Rechner kopiert wurde, oder sonst wie zugänglich ist.

Ergänzungen

Mit dieser kleinen Anleitung soll nur gezeigt werden, wie man sich das Leben beim Neueinrichten eines Systems (z.B. nach Neukauf/Defekt von Hardware) ein wenig leichter machen kann. Aufgrund seiner Flexibilität ist Pacman noch für viele andere praktischen Anwendungen konfigurierbar und auch die hier gezeigte Nutzung des Paketmanagers lässt sich in einigen Bereichen sicherlich noch erweitern und für die eigenen Bedürfnisse anpassen.

Eine andere praktische Anwendung gibt es im englischen Wiki: Redownloading_all_installed_packages

Sichern der Paketliste auf einen Server

Hierzu ist es sinnvoll sich cronjobs einzurichten, die die Paketliste in regelmäßigen Abständen aktualisieren und auf dem Server speichern. Die crontab des Nutzers könnte folgendermaßen aussehen:

1 * * * * /usr/bin/pacman -Qqen > ~/Backup/Installierte_Pakete.info 
1 * * * * /usr/bin/pacman -Qqem > ~/Backup/Installierte_FremdPakete.info
15 * * * * /usr/bin/rsync -e ssh ~/Backup/ backupserver:~/Backup/ -avz

Die Authentifizierung am Server findet mittels Publickey statt, Nutzer, Server und zu verwendender Schlüssel sind in ~/.ssh/config definiert.

Siehe auch