Je comprends qu'un package a deux composants: config
et des data
fichiers. Pendant la mise à niveau du package (c'est-à-dire la mise à niveau de sécurité), les data
fichiers peuvent être remplacés, mais les config
fichiers doivent toujours rester les mêmes. De plus, les config
fichiers sont généralement entrés /etc
et data
sortis /usr
. Parfois, cependant, la distinction est floue.
Dans mon cas, j'ai modifié le fichier icône pour Icedove
(Thunderbird):
/usr/share/applications/icedove.desktop
Maintenant, chaque fois qu'il y a une Icedove
mise à jour (Thunderbird), mes modifications sont remplacées par le fichier par défaut (même s'il n'a pas changé entre les mises à jour).
Existe-t-il un moyen d'empêcher ce fichier particulier d'être écrasé?
Le paramétrer sur immuable avec chattr +i icedove.desktop
n'est pas une bonne idée, car cela produit une erreur lors de la mise à niveau du package.
la source
$XDG_DATA_HOME/applications/icedove.desktop
, bien que ce soit par défaut le chemin de recherche que vous mentionnez. La spécification de répertoire de base XDG fournit également un chemin de recherche$XDG_DATA_DIRS
pour les remplacements à l'échelle du système. Une explication plus détaillée de la façon dont les répertoires de base XDG s'appliquent dans ce cas se trouve dans ma réponse .Réponses:
Bien que la réponse de Wurtel réponde à la question telle qu'elle est formulée, le contexte de la question révèle qu'il s'agit d'un autre cas de problème XY .
Dans ce cas particulier,
/usr/share/applications/icedove.desktop
ne doit pas être modifié en premier lieu, mais un fichier de configuration local qui remplace la configuration par défaut doit être placé dans un emplacement approprié. Les systèmes conformes à freedesktop.org sont conformes à la spécification de répertoire de base XDG , dont le but est précisément d'éliminer la nécessité de modifier les fichiers de configuration qui sont écrasés lors des mises à niveau des packages.Si la configuration est destinée à l'ensemble du système, le local
icedove.desktop
doit être placé dans leapplications
sous - répertoire pour un chemin de recherche précédant/usr/share
dans$XDG_DATA_DIRS
. La valeur par défaut de cette variable d'environnement est/usr/local/share/:/usr/share/
, mais la valeur réelle varie entre les distributions. Parce que dans ce cas, la configuration est destinée à être locale, l'emplacement correct est/usr/local/share/applications/icedove.desktop
, bien que gardez à l'esprit qu'il peut y avoir des remplacements spécifiques à la distribution en place qui pourraient avoir la préférence sur les configurations soususr/local/share
.D'un autre côté, si la configuration est en retrait pour être spécifique à l'utilisateur, le local
icedove.desktop
doit être placé sousapplications
à l'emplacement indiqué par$XDG_DATA_HOME
. Il s'agit généralement$HOME/.local/share
, par exemple, de l'emplacement du fichier de configuration$HOME/.local/share/applications/icedove.desktop
.la source
Vous voulez l'
dpkg-divert
utilitaire.la source