Pacnew- und Pacsave-Dateien

Aus wiki.archlinux.de

Dieser Artikel oder Artikelabschnitt ist noch nicht vollständig!


Einleitung

Während der Installation oder dem Entfernen von Paketen wird Pacman eventuell über Dateien informieren (üblicherweise Konfigurationsdateien in /etc), die mit der Endung .pacnew installiert werden, oder mit der Endung .pacsave gesichert werden.

Eine .pacnew-Datei kann während einer System-Aktualisierung (pacman -Syu, pacman -Su, oder pacman -U) erstellt werden, um zu verhindern, dass eine bereits existierende, vom Nutzer veränderte Datei überschrieben wird. Wenn dies geschieht, gibt Pacman eine Nachricht ähnlich der folgenden aus:

Warnung: /etc/pam.d/usermod installiert als /etc/pam.d/usermod.pacnew

Eine .pacsave-Datei kann während des Entfernen eines Paketes (nach pacman -R), oder während einer System-Aktualisierung angelegt werden (wenn das ältere Paket zunächst entfernt werden muss). Wenn Pacman aus seiner Datenbank erfährt, dass eine bestimmte Datei einem Paket gehört, dass aktualisiert werden soll, wird eine .pacsave-Datei angelegt. Wenn dies geschieht, gibt Pacman eine Nachricht ähnlich der folgenden aus:

Warnung: /etc/pam.d/usermod gespeichert als /etc/pam.d/usermod.pacsave

Diese Dateien erfordern einen manuellen Eingriff des Nutzers und sollten idealerweise nach jeder Aktualisierung oder Lösch-Aktion bearbeitet werden. Wenn sie unbehandelt bleiben, kann dies zu Konfigurationsfehlern führen, oder die Software funktioniert vielleicht überhaupt nicht mehr.

Paket-Sicherungsdateien

Das PKGBUILD eines Paketes legt fest, welche Dateien beibehalten oder gesichert werden sollen, wenn das Paket aktualisiert oder entfernt wird. So enthält z.B. das PKGBUILD für pulseaudio die folgende Zeile:

 backup=('etc/pulse/client.conf' 'etc/pulse/daemon.conf' 'etc/pulse/default.pa')

Typen von *.pac*-Dateien

*.pacnew

Für jede Sicherungsdatei innerhalb eines zu aktualisierenden Paketes vergleicht Pacman drei MD5-Summen, die aus dem Inhalt der Datei erstellt werden: Eine Summe für die Version, die ursprünglich von dem Paket installiert wurde, eine für die Version, die sich derzeit innerhalb des Dateisystems befindet, und eine weitere für die zu installierende Version. Wenn die derzeit bestehende Version verändert wurde und somit von der ursprünglich installierten abweicht, kann Pacman diese Änderungen nicht in die zu installierende Version übernehmen. Statt die veränderte Version zu überschreiben, legt Pacman nun eine neue Fassung mit der Endung .pacnew an.

Der Vergleich der drei MD5-Summen führt zu einem der folgenden Ergebnisse:

original = X, aktuell = X, neu = X
Alle drei Dateien haben den gleichen Inhalt, und die Überschreibung kann keine Probleme verursachen. Die aktuelle Version wird mit der neuen überschrieben, ohne den Nutzer zu benachrichtigen. (Obwohl die Inhalte der Dateien gleich sind, wird diese Aktion die Informationen des Dateisystems in Bezug auf Installations-, Modifizierungs- und Zugangszeiten aktualisieren. Gleichzeitig wird sichergestellt, dass veränderte Zugriffsberechtigungen übernommen werden.)
original = X, aktuell = X, neu = Y
Die aktuelle Version entspricht der ursprünglich installierten, doch die neue unterscheidet sich davon. Da der Nutzer die Datei bisher nicht verändert hat und die neue Version Verbesserungen oder Fehlerbehebungen enthalten kann, wird die aktuelle Fassung mit der neuen überschrieben, ohne den Nutzer zu benachrichtigen. Dies ist die einzige Form des automatischen Zusammenführens von Dateien, die Pacman beherrscht.
original = X, aktuell = Y, neu = X
Die ursprüngliche Version stimmt exakt mit der neuen überein, doch die Datei wurde zwischenzeitlich vom Nutzer verändert. Die aktuelle Version wird beibehalten und die neue verworfen, ohne den Nutzer zu benachrichtigen.
original = X, aktuell = Y, neu = Y
Die neue Fassung entspricht der aktuellen. Die aktuelle Version wird mit der neuen überschrieben, ohne den Nutzer zu benachrichtigen. (Obwohl die Inhalte der Dateien gleich sind, wird diese Aktion die Informationen des Dateisystems in Bezug auf Installations-, Modifizierungs- und Zugangszeiten aktualisieren. Gleichzeitig wird sichergestellt, dass veränderte Zugriffsberechtigungen übernommen werden.)
original = X, aktuell = Y, neu = Z
Alle drei Versionen unterscheiden sich voneinander. Die aktuelle Fassung wird beibehalten und die neue mit der Endung .pacnew gespeichert. Der Nutzer wird über die Existenz der .pacnew-Datei informiert. Er muss nun die früheren Änderungen manuell in die neue Version übertragen.

.pacsave

Wenn der Nutzer eine der Dateien verändert hat, die in backup spezifiziert sind, wird diese Datei in die Endung .pacsave umbenannt und verbleibt im Dateisystem, nachdem der Rest des Paketes entfernt wurde.

Vorlage:Box Note

.pacorig

Wenn während der Installation oder Aktualisierung eine Datei gefunden wird (üblicherweise eine Konfigurationsdatei in /etc), die zu keinem installierten Paket gehört, aber in backup für das derzeit zu bearbeitende Paket aufgeführt ist, wird sie mit der Endung .pacorig gespeichert und durch die neue Fassung ersetzt. Typischerweise geschieht dies, wenn eine Konfigurationsdatei von einem Paket einem anderen Pakt zugeordnet wird. Wenn eine solche Datei nicht in backup aufgeführt wäre, würde Pacman mit einem Dateikonflikt-Fehler abbrechen.

Vorlage:Box Note