Чи існує офіційна документація на такі каталоги, як ~ / .config і ~ / .cache?


13

Я бачу, що ці каталоги використовуються багатьма програмами, і зараз я розглядаю можливість їх використання для свого додатка. Як я можу знати, що це офіційно підтримувана папка, а не лише аромат розташування місяця для кешу / конфігурації користувача?

Я гуглив і шукав щось офіційне від Ubuntu, але безрезультатно, можливо, хтось інший знає правильні пошукові терміни або місце розташування цієї документації. Це щось, що я повинен просто прийняти як незазначене місце стандартної практики?


"можливо, хтось інший знає належні пошукові терміни": я не впевнений в офіційній документації щодо їх використання, але це вважаються дотфайлами, точніше папками крапок у цих прикладах. Вони приховані за замовчуванням і зазвичай використовуються для збереження налаштувань користувача (~ / .config) та інших файлів "підтримки", таких як кеш (~ / .cache).
Nmath

2
"чиновник з Ubuntu" неправильне місце. Він визначається організацією freedesktop, так залежною від dedestop. Не лише Ubuntu. Ох, і це НАВЧАЛИ.
Rinzwind

1
@SergiyKolodyazhnyy цікаво обговорити історію того, як виникли dotfiles, але на практиці dotfiles / dotfolders приховані (не видно) за замовчуванням файловими менеджерами та bash командами, як dir. Таким чином, так, вони абсолютно "приховані". Цей спосіб приховування файлів служить гарною метою, щоб запобігти випадковому зміні / видаленню кінцевим користувачем - тому вони все ще використовуються так всюди. Я погоджуюся, що точкові файли не повинні використовуватися для безпеки, в тому сенсі, що їх неможливо знайти / прочитати / змінити.
Nmath

3
@SergiyKolodyazhnyy кілька методів на 100% ефективні самостійно. Що стосується того, що стверджувати, що точкові файли "жодним чином не приховані", явно неправдиво, оскільки це головна причина їх використання та єдина користь для додавання попередніх .. Вони абсолютно непомітні? Ні, і їх не повинно бути. Чи можна їх ще читати / писати? Так, і вони повинні. Вони в більшості випадків невидимі (приховані)? Так - ось сенс
Nmath

1
@Nmath Ну, давайте погодимось не погодитися :) Крім того, розділ коментарів не для широких дискусій.
Сергій Колодяжний

Відповіді:


19

Так, існує стандарт: вони визначені freedesktop.org і є частиною специфікацій базового каталогу XDG .

config-spec окреслює лише основні вимоги, але деталі містяться в специфікаціях базового каталогу. Каталоги ~/.configта ~/.cacheкаталоги за замовчуванням, якщо не налаштовано інше:

Існує набір упорядкованих базовими каталогами уподобань, щодо яких файлів конфігурації слід шукати. Цей набір каталогів визначається змінною середовища $ XDG_CONFIG_DIRS.

Існує єдина базова директорія, до якої слід писати несуттєві (кешовані) дані для користувача. Цей каталог визначається змінною середовища $ XDG_CACHE_HOME.

...

$ XDG_CONFIG_HOME визначає базовий каталог відносно того, в якому файлах конфігурації повинні зберігатися конкретні користувачі. Якщо $ XDG_CONFIG_HOME не встановлений або порожній, слід використовувати за замовчуванням $ HOME / .config.

...

$ XDG_CACHE_HOME визначає базовий каталог відносно того, в якому повинні зберігатися конкретні неістотні файли даних, які користувач повинен зберігати. Якщо $ XDG_CACHE_HOME не встановлено або порожньо, слід використовувати за замовчуванням $ HOME / .cache.

Ви можете помітити, що в цих специфікаціях в основному зазначено, де слід зберігати дані, які змінні середовища використовуються та яким способом (нейтральний для робочого столу, ефективний тощо), але більшість настільних комп'ютерів вільні в застосуванні частини "як". Настільні комп'ютери на основі GNOME використовуватимуть gsettingsтам, де користувачі KDE можуть використовувати те саме через kwriteconfig, але вони обидва будуть покладатися на ~/.configкаталог у процесі


Питання ключові моменти

Як я можу знати, що це офіційно підтримувана папка, а не лише аромат розташування місяця для кешу / конфігурації користувача?

Ці каталоги відображаються в офіційній документації, і Filesystem Hierarchy Standard також згадує їх. Це офіційна документація, тому папки офіційно підтримуються.

Це щось, що я повинен просто прийняти як незазначене місце стандартної практики?

Залежить від програми, яку ви створюєте. Чи потрібно додаток налаштовуватись на основі користувача чи працюватиме послідовно через систему? FHS говорить нам , що для загальносистемних речей , які ми повинні використовувати /etcабо /usr/local, але XDG каталоги повинні використовуватися для користувача конкретних конфігурацій - ~/.cacheі ~/.config. Звичайно, якщо додаток не залежить від конкретних налаштувань користувача, / var / cache може використовуватися замість каталогу кожного користувача. Звичайно, у вас завжди може бути один ~/.appname.confфайл, ~/.appname.db або ~/.appname/каталог, щоб зберігати там конфігурації та кеш, але це було б нестандартно; не «погано» - просто нестандартно.

Дивись також


ем, ти це до мене написав? або під час? > :)
Rinzwind

@Rinzwind Незадовго до своєї відповіді :) Подивіться на часовий рядок askubuntu.com/posts/1151791/timeline
Сергій Колодяжний

Я нехай у вас є цей: =)
Rinzwind

Ах дивовижно, я мав би копати глибше, дякую за інформацію.
Danny A

Яка частина POSIX розповідає про використання каталогу?
чепнер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.