Есть ли официальная документация для таких каталогов, как ~ / .config и ~ / .cache?

13

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

Я гуглил и искал что-то официальное из Ubuntu, но безрезультатно, может быть, кто-то еще знает правильные условия поиска или местонахождение этой документации. Это то, что я должен просто принять как неустановленное стандартное место практики?

Дэнни А
источник
«возможно, кто-то еще знает правильные условия поиска»: я не уверен в официальной документации для их использования, но они считаются точечными файлами, точнее точечными папками в этих примерах. По умолчанию они скрыты и обычно используются для сохранения пользовательских настроек (~ / .config) и других «вспомогательных» файлов, таких как кеш (~ / .cache).
NMath
2
"чиновник из Ubuntu" не в том месте. Он определяется организацией freedesktop, так что -desktop-зависимый. Не только Ubuntu. Ох, и это РУКОВОДСТВО.
Rinzwind
1
@SergiyKolodyazhnyy интересно обсудить историю появления дотфайлов, но на практике дотфайлы / дотфолдеры скрыты (не видны) по умолчанию файловыми менеджерами и командами bash, как dir. Таким образом, да, они абсолютно «скрыты». Скрытие файлов таким способом служит хорошей цели, чтобы предотвратить их случайное изменение / удаление конечным пользователем - вот почему они все еще используются так повсеместно. Я согласен с тем, что точечные файлы не должны использоваться для безопасности, в том смысле, что их невозможно найти / прочитать / изменить.
NMath
3
@SergiyKolodyazhnyy немногие методы на 100% эффективны сами по себе. Заявление о том, что точечные файлы «никоим образом не скрыты», явно ложно, так как это основная причина их использования и единственная выгода для добавления предыдущего .. Они полностью невидимы? Нет, и не должно быть. Они все еще могут быть прочитаны / написаны? Да, и они должны. Являются ли они невидимыми (скрытыми) в большинстве случаев? Да - в этом суть
Nmath
1
@Nmath Хорошо, давайте просто согласимся не соглашаться :) Кроме того, раздел комментариев не для подробных обсуждений.
Сергей Колодяжный

Ответы:

19

Да, есть стандарт: они определены freedesktop.org и являются частью спецификаций XDG Base Directory .

В 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каталог в процессе


Ключевые вопросы

Как я узнаю, что это официально поддерживаемая папка, а не просто указатель расположения месяца для кэша / конфигурации для каждого пользователя?

Эти каталоги появляются в официальной документации, и в стандарте файловой системы также упоминается о них. Это официальная документация, поэтому папки официально поддерживаются.

Это то, что я должен просто принять как неустановленное стандартное место практики?

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

Смотрите также

Сергей Колодяжный
источник
Эмм, ты опубликовал это до меня? или во время? > :)
Rinzwind
@Rinzwind Прямо перед вашим ответом :) Посмотрите на временную шкалу askubuntu.com/posts/1151791/timeline
Сергей Колодяжный
Я позволю вам иметь это: =)
Rinzwind
Ах, круто, мне следовало копать глубже, спасибо за информацию.
Дэнни
Какая часть POSIX говорит об использовании каталога?
chepner