Ich verstehe, dass ein Paket zwei Komponenten hat: config
und data
Dateien. Während des Paket-Upgrades (dh des Sicherheits-Upgrades) können data
Dateien überschrieben werden, die config
Dateien sollten jedoch immer gleich bleiben. Auch config
Dateien sind in der Regel in /etc
und data
in /usr
. Manchmal ist die Unterscheidung jedoch unscharf.
In meinem Fall habe ich die Symboldatei für Icedove
(Thunderbird) geändert :
/usr/share/applications/icedove.desktop
Jedes Mal, wenn es ein Icedove
(Thunderbird-) Update gibt, werden meine Änderungen mit der Standarddatei überschrieben (auch wenn sie sich zwischen den Updates nicht geändert haben).
Gibt es eine Möglichkeit zu verhindern, dass diese bestimmte Datei überschrieben wird?
Es chattr +i icedove.desktop
ist keine gute Idee, es auf unveränderlich mit zu setzen , da es beim Paket-Upgrade zu Fehlern führt.
quelle
$XDG_DATA_HOME/applications/icedove.desktop
, obwohl dies normalerweise der von Ihnen erwähnte Suchpfad ist. Die XDG-Basisverzeichnisspezifikation bietet auch einen Suchpfad$XDG_DATA_DIRS
für systemweite Überschreibungen. Eine ausführlichere Erläuterung der Anwendung von XDG-Basisverzeichnissen in diesem Fall finden Sie in meiner Antwort .Antworten:
Während Wurtels Antwort die Frage wie formuliert beantwortet, zeigt der Hintergrund der Frage, dass dies ein weiterer Fall eines XY-Problems ist .
In diesem speziellen Fall
/usr/share/applications/icedove.desktop
sollte nicht an erster Stelle geändert werden, sondern eine lokale Konfigurationsdatei, die die Standardkonfiguration überschreibt, sollte an einem geeigneten Ort abgelegt werden. Systeme, die freedesktop.org-kompatibel sind, entsprechen der XDG-Basisverzeichnisspezifikation , deren Zweck genau darin besteht, die Notwendigkeit zu beseitigen, Konfigurationsdateien zu ändern, die bei Paketaktualisierungen überschrieben werden.Wenn die Konfiguration seines systemweite bestimmt ist, das lokal
icedove.desktop
sollte im platziert wirdapplications
Unterverzeichnis für einen Suchpfad vorhergehenden/usr/share
in$XDG_DATA_DIRS
. Der Wert dieser Umgebungsvariablen ist standardmäßig/usr/local/share/:/usr/share/
, der tatsächliche Wert variiert jedoch zwischen den Verteilungen. Da in diesem Fall die Konfiguration lokal sein soll, ist der richtige Speicherort zu/usr/local/share/applications/icedove.desktop
beachten. Beachten Sie jedoch, dass es sich möglicherweise um verteilungsspezifische Überschreibungen handelt, die möglicherweise Vorrang vor Konfigurationen unter habenusr/local/share
.Auf der anderen Seite, wenn die Konfiguration eingekerbt ist die lokale Benutzer spezifisch sein,
icedove.desktop
unter platziert werden sollapplications
in der Lage , die durch$XDG_DATA_HOME
. Dies ist normalerweise der Standardwert$HOME/.local/share
, dh der Speicherort für die Konfigurationsdatei sollte sein$HOME/.local/share/applications/icedove.desktop
.quelle
Sie möchten das
dpkg-divert
Dienstprogramm.quelle