Saya mengerti bahwa sebuah paket memiliki dua komponen: config
dan data
file. Selama peningkatan paket (yaitu peningkatan keamanan) data
file dapat ditimpa, tetapi config
file harus selalu tetap sama. Juga config
file biasanya masuk /etc
dan data
masuk /usr
. Namun, kadang-kadang perbedaannya kabur.
Dalam kasus saya, saya telah memodifikasi file ikon untuk Icedove
(Thunderbird):
/usr/share/applications/icedove.desktop
Sekarang, setiap kali ada Icedove
pembaruan (Thunderbird), perubahan saya akan ditimpa dengan file default (bahkan jika itu tidak berubah di antara pembaruan).
Apakah ada cara untuk mencegah file khusus ini ditimpa?
Mengaturnya agar tidak berubah dengan chattr +i icedove.desktop
bukan ide yang baik, karena menghasilkan kesalahan selama peningkatan paket.
package-management
dpkg
Martin Vegter
sumber
sumber
$XDG_DATA_HOME/applications/icedove.desktop
, meskipun ini biasanya default ke jalur pencarian yang Anda sebutkan. The XDG Basis Direktori Keterangan juga menyediakan jalur pencarian di$XDG_DATA_DIRS
sistem menimpa lebar. Penjelasan lebih rinci tentang bagaimana Direktori Pangkalan XDG berlaku dalam kasus ini ada dalam jawaban saya .Jawaban:
Sementara jawaban wurtel menjawab pertanyaan itu sebagai ungkapan, mengingat latar belakang dalam pertanyaan itu mengungkapkan bahwa ini adalah kasus lain dari masalah XY .
Dalam kasus khusus ini,
/usr/share/applications/icedove.desktop
tidak boleh diubah di tempat pertama, tetapi file konfigurasi lokal yang mengesampingkan konfigurasi default harus ditempatkan di lokasi yang sesuai. Sistem yang sesuai dengan freedesktop.org sesuai dengan Spesifikasi Direktori Pangkalan XDG , yang tujuannya adalah persis untuk menghilangkan kebutuhan untuk memodifikasi file konfigurasi yang ditimpa selama peningkatan paket.Jika konfigurasi ini dimaksudkan untuk menjadi sistem-lebar, lokal
icedove.desktop
harus ditempatkan dalamapplications
subdirektori untuk jalur pencarian sebelumnya/usr/share
di$XDG_DATA_DIRS
. Nilai variabel lingkungan ini menjadi default/usr/local/share/:/usr/share/
, tetapi nilai aktual bervariasi di antara distribusi. Karena dalam hal ini konfigurasi dimaksudkan untuk menjadi lokal lokasi yang benar/usr/local/share/applications/icedove.desktop
, meskipun perlu diingat bahwa mereka mungkin menimpa distribusi spesifik di tempat yang mungkin lebih disukai daripada konfigurasi di bawahusr/local/share
.Di sisi lain, jika konfigurasi diindentifikasi khusus pengguna, lokal
icedove.desktop
harus ditempatkanapplications
di bawah di lokasi yang ditunjukkan oleh$XDG_DATA_HOME
. Ini biasanya default$HOME/.local/share
, yaitu lokasi untuk file konfigurasi seharusnya$HOME/.local/share/applications/icedove.desktop
.sumber
Anda menginginkan
dpkg-divert
utilitas.sumber