Apakah ada dokumentasi resmi pada direktori seperti ~ / .config dan ~ / .cache?

13

Saya telah melihat direktori ini digunakan oleh banyak aplikasi dan sekarang saya mempertimbangkan untuk menggunakannya untuk aplikasi saya. Bagaimana saya tahu ini adalah folder yang didukung secara resmi dan bukan hanya rasa lokasi bulan untuk cache / konfigurasi per pengguna?

Saya telah mencari di Google dan mencari sesuatu yang resmi dari Ubuntu tetapi tidak berhasil, mungkin orang lain mengetahui istilah pencarian yang tepat atau lokasi dokumentasi ini. Apakah ini sesuatu yang harus saya terima sebagai lokasi praktik standar yang tidak disebutkan?

Danny A
sumber
"mungkin orang lain tahu istilah pencarian yang tepat": Saya tidak yakin dengan dokumentasi resmi untuk penggunaannya tetapi ini dianggap dotfile, lebih khusus dot folder dalam contoh-contoh itu. Mereka disembunyikan secara default dan biasanya digunakan untuk menyimpan preferensi pengguna (~ / .config) dan file "dukungan" lainnya seperti cache (~ / .cache).
Nmath
2
tempat "resmi dari Ubuntu" salah. Ini didefinisikan oleh organisasi freedesktop jadi -desktop- bergantung. Bukan hanya Ubuntu. Oh dan ini adalah PEDOMAN.
Rinzwind
1
@SergiyKolodyazhnyy menarik untuk membahas sejarah tentang bagaimana dotfile muncul, tetapi dalam praktiknya dotfiles / dotfolder disembunyikan (tidak terlihat) secara default oleh manajer file dan perintah bash seperti dir. Dengan cara itu, ya mereka benar-benar "tersembunyi". Menyembunyikan file dengan cara ini memiliki tujuan yang baik untuk mencegahnya tidak sengaja diubah / dihapus oleh pengguna akhir - itulah sebabnya mereka masih digunakan di mana-mana. Saya setuju bahwa dotfile tidak boleh digunakan untuk keamanan, dalam arti bahwa mereka tidak mungkin menemukan / membaca / mengubah.
Nmath
3
@SergiyKolodyazhnyy beberapa metode 100% efektif sendiri. Sejauh mengklaim bahwa dotfile "tidak tersembunyi" terbukti salah, karena itulah alasan utama mereka digunakan dan satu-satunya manfaat untuk menambahkan yang sebelumnya .. Apakah mereka sama sekali tidak terlihat? Tidak, dan mereka seharusnya tidak. Apakah masih dapat dibaca / ditulis? Ya, dan mereka seharusnya. Apakah mereka tidak terlihat (tersembunyi) dalam banyak kasus? Ya - itu intinya
Nmath
1
@Nmath Yah, mari kita setuju untuk tidak setuju :) Selain bagian komentar bukan untuk diskusi yang luas.
Sergiy Kolodyazhnyy

Jawaban:

19

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 ~/.configdan ~/.cachedirektori 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 gsettingsdimana pengguna KDE dapat menggunakan via yang sama kwriteconfig, tetapi keduanya akan bergantung pada ~/.configdirektori 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 /etcatau /usr/local, tetapi direktori XDG harus digunakan untuk konfigurasi khusus pengguna - ~/.cachedan ~/.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.conffile, 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

Sergiy Kolodyazhnyy
sumber
ehm apakah Anda memposting ini sebelum saya? atau selama? > :)
Rinzwind
@Rinzwind Tepat sebelum jawaban Anda :) Lihatlah garis waktu askubuntu.com/posts/1151791/timeline
Sergiy Kolodyazhnyy
Saya akan membiarkan Anda memilikinya: =)
Rinzwind
Ah luar biasa, saya harus menggali lebih dalam, terima kasih atas informasinya.
Danny A
Bagian mana dari POSIX yang berbicara tentang penggunaan direktori?
chepner