Debian:パッケージのアップグレード中に特定のファイルが上書きされるのを防ぎます。

Debian:パッケージのアップグレード中に特定のファイルが上書きされるのを防ぎます。

パッケージには、ファイルconfigdataファイルの2つのコンポーネントがあることがわかります。パッケージのアップグレード中(たとえば、セキュリティアップグレード)中にdataファイルを上書きできますが、configファイルは常に変更されていないままにしてください。ファイルは通常、およびにconfigあります。しかし、時にはこれらの区別があいまいになることがあります。/etcdata/usr

Icedove私の場合は、(Thunderbird)アイコンファイルを修正しました。

/usr/share/applications/icedove.desktop

(Thunderbird)が更新されるたびに、Icedove私の変更はデフォルトのファイルで上書きされます(アップデート間で変更されていない場合でも同様です)。

この特定のファイルを上書きするのを防ぐ方法はありますか?

これを不変にすることはchattr +i icedove.desktopパッケージのアップグレード中にエラーを生成するので、良い考えではありません。

答え1

あなたはユーティリティが欲しいですdpkg-divert

dpkg-divert --divert /usr/share/applications/icedove.desktop.packaged --rename /usr/share/applications/icedove.desktop

答え2

しかし、ウーターの答え質問の文脈により、これが別のケースであることを示唆している場合は、質問に対する回答の表現XYの問題

この特別な場合は、/usr/share/applications/icedove.desktopデフォルト構成をオーバーライドするローカル構成ファイルを最初から変更しないでください。適切な場所に配置する必要があります。 freedesktop.org に準拠するシステムは、以下に準拠しています。XDGの基本ディレクトリ仕様、その目的は、パッケージのアップグレード中に上書きされた構成ファイルを変更する必要をなくすことです。

システム全体を構成するには、前の検索パスのサブディレクトリにicedove.desktopローカル構成を配置する必要があります。この環境変数の値はデフォルトでに設定されていますが、実際の値はディストリビューションによって異なります。この場合、構成はローカルである必要があるため、正しい場所はです。ただし、配布固有のオーバーライドである可能性があり、以下の構成よりも優先されることに注意してください。applications/usr/share$XDG_DATA_DIRS/usr/local/share/:/usr/share//usr/local/share/applications/icedove.desktopusr/local/share

一方、設定インデントがユーザーごとに指定されている場合、ローカルは表示された場所の下にicedove.desktop配置する必要があります。通常、デフォルトはです。ここに設定ファイルが必要です。applications$XDG_DATA_HOME$HOME/.local/share$HOME/.local/share/applications/icedove.desktop

関連情報