Paketliste archivieren: Unterschied zwischen den Versionen
Installierte Pakete als Liste in einer Datei speichern und mit Hilfe dieser Liste auf neuem System installieren |
K correct link |
||
(15 dazwischenliegende Versionen von 8 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
Dieser Artikel gibt eine kurze Hilfestellung, wie man sich eine Liste der aktuell über [[Pacman]] installierten Pakete anlegt. | |||
Dieser Artikel gibt eine kurze Hilfestellung, wie man sich eine | |||
Mit Hilfe dieser Liste hat man, nach einer Neuinstallation, eine einfache Möglichkeit wieder den "alten" Softwarestand zu erreichen. | 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 | 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 {{ic|/etc/pacman.conf}} aktiviert sein. | ||
/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. | 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 == | == Paketliste erstellen == | ||
Um eine Liste aller '''explizit''' installierten Pakete anzulegen ist der folgende Befehl nötig. | Um eine Liste aller '''explizit''' installierten Pakete anzulegen ist der folgende Befehl nötig. | ||
pacman -Qeq > Pakete.txt | |||
pacman - | 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. | an die Datei '''Pakete.txt''' anhängen. | ||
Zeile 42: | Zeile 28: | ||
Bei diesem Aufruf sind zwei "Größer-Zeichen" '''( >> )''' zu verwenden! (Wird nur eines verwendet, so wird der bestehende Dateiinhalt überschrieben!) | 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 == | == System wiederherstellen == | ||
Man sollte diese Wiederherstellung möglichst in einem "frischen" System vornehmen (direkt nach der Basisinstallation). | |||
Man sollte diese Wiederherstellung möglichst in einem " | |||
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. | 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. | ||
Zeile 54: | Zeile 42: | ||
Die Installation der in der Datei gespeicherten Pakete erfolgt nun mit dem Befehl: | Die Installation der in der Datei gespeicherten Pakete erfolgt nun mit dem Befehl: | ||
pacman -S $(cat Pakete.txt) | |||
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. | 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. | 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 == | == 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. | 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. | 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. | ||
Zeile 70: | Zeile 58: | ||
[http://wiki.archlinux.org/index.php/Redownloading_all_installed_packages Redownloading_all_installed_packages] | [http://wiki.archlinux.org/index.php/Redownloading_all_installed_packages 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 {{ic|~/.ssh/config}} definiert. | |||
* [ | == Siehe auch == | ||
* [[Pacman]] | |||
[[Kategorie:Paketverwaltung]] | |||
[[Kategorie:Tipps und Tricks]] | |||
[[en:Pacman/Tips_and_tricks#Back_up_the_pacman_database]] | |||
Aktuelle Version vom 13. Oktober 2020, 22:00 Uhr
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.