Paketliste archivieren: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
Keine Bearbeitungszusammenfassung
K (correct link)
 
(12 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
== Einleitung ==
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 Datei mit einer 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.  
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 notwending und alle benötigten Repositorien müssen in der Datei
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.
<pre>
/etc/pacman.conf
</pre>
aktiviert sein. (Siehe [http://wiki.archlinux.de/?title=Pacman Pacman])


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.
<pre>
pacman -Qeq > Pakete.txt
pacman -Qeq > Pakete.txt
</pre>
 
Der einzelne Befehl erfüllt dabei folgende Funktion:
Der einzelne Befehl erfüllt dabei folgende Funktion:


Zeile 31: Zeile 20:


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:
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:
<pre>
 
pacman -Qdq >> Pakete.txt  
pacman -Qdq >> Pakete.txt  
</pre>
 
an die Datei '''Pakete.txt''' anhängen.
an die Datei '''Pakete.txt''' anhängen.


Zeile 39: 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 "frischen" System vornehmen (direkt nach der Basisinstallation).  


Zeile 51: 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:
<pre>
pacman -S $(cat Pakete.txt)
pacman -S $(cat Pakete.txt)
</pre>
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 67: 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]


== Weitere Informationen ==
== 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.
* [http://wiki.archlinux.de/?title=Pacman Pacman]
Die crontab des Nutzers könnte folgendermaßen aussehen:
 
1 * * * * /usr/bin/pacman -Qqen > ~/Backup/Installierte_Pakete.info
* [http://de.wikipedia.org/wiki/Awk Wikipedia:AWK]
1 * * * * /usr/bin/pacman -Qqem > ~/Backup/Installierte_FremdPakete.info
 
15 * * * * /usr/bin/rsync -e ssh ~/Backup/ backupserver:~/Backup/ -avz
* [http://linux.die.net/man/1/awk man awk]
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:Paketverwaltung]]
[[Kategorie:Tipps und Tricks]]
[[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.

Siehe auch