Ya, ada standar: ini ditentukan oleh freedesktop.org dan merupakan bagian dari Spesifikasi Direktori Pangkalan XDG .
config-spec menguraikan hanya persyaratan dasar, tetapi detailnya ada di Spesifikasi Direktori Pangkalan. The ~/.config
dan ~/.cache
direktori yang default kecuali dikonfigurasi sebaliknya:
Ada satu set preferensi direktori dasar yang dipesan relatif terhadap file konfigurasi yang harus dicari. Kumpulan direktori ini ditentukan oleh variabel lingkungan $ XDG_CONFIG_DIRS.
Ada direktori basis tunggal relatif yang harus dituliskan data non-esensial (cache) khusus pengguna. Direktori ini ditentukan oleh variabel lingkungan $ XDG_CACHE_HOME.
...
$ XDG_CONFIG_HOME mendefinisikan direktori dasar relatif dimana file konfigurasi khusus pengguna harus disimpan. Jika $ XDG_CONFIG_HOME tidak disetel atau kosong, standar yang sama dengan $ HOME / .config harus digunakan.
...
$ XDG_CACHE_HOME mendefinisikan direktori dasar relatif dimana file data non-esensial khusus pengguna harus disimpan. Jika $ XDG_CACHE_HOME tidak disetel atau kosong, standar yang sama dengan $ HOME / .cache harus digunakan.
Anda mungkin memperhatikan spesifikasi ini kebanyakan menyatakan di mana data harus disimpan, variabel lingkungan mana yang digunakan, dan dengan cara apa (desktop-netral, efisien, dll), tetapi sebagian besar desktop bebas dalam mengimplementasikan bagian "bagaimana" dari itu. Desktop berbasis GNOME akan menggunakan gsettings
dimana pengguna KDE dapat menggunakan via yang sama kwriteconfig
, tetapi keduanya akan bergantung pada ~/.config
direktori dalam proses
Pertanyaan poin-poin penting
Bagaimana saya tahu ini adalah folder yang didukung secara resmi dan bukan hanya rasa lokasi bulan untuk cache / konfigurasi per pengguna?
Direktori-direktori ini muncul dalam dokumentasi resmi dan Filesystem Hierarchy Standard juga menyebutkannya. Ini adalah dokumentasi resmi, karenanya folder secara resmi didukung.
Apakah ini sesuatu yang harus saya terima sebagai lokasi praktik standar yang tidak disebutkan?
Tergantung pada aplikasi yang Anda buat. Apakah aplikasi seharusnya dapat dikonfigurasi berdasarkan per pengguna atau bekerja secara konsisten di seluruh sistem? FHS memberi tahu kita bahwa untuk hal-hal di seluruh sistem kita harus menggunakan /etc
atau /usr/local
, tetapi direktori XDG harus digunakan untuk konfigurasi khusus pengguna - ~/.cache
dan ~/.config
. Tentu saja, jika aplikasi tidak tergantung pada pengaturan khusus pengguna, / var / cache dapat digunakan sebagai pengganti direktori per pengguna. Tentu saja, Anda selalu dapat memiliki satu ~/.appname.conf
file, direktori ~/.appname.db
atau ~/.appname/
untuk menyimpan konfigurasi dan cache di sana, tetapi itu akan menjadi non-standar; bukan "buruk" - hanya non-standar.
Lihat juga