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

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

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

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

решение1

Да, есть стандарт: он указан на сайте 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каталог в процессе


Вопрос по ключевым пунктам

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

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

Должен ли я просто принять это как неуказанное стандартное место практики?

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

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

Связанный контент