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

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

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

13
задан 17 June 2019 в 22:03

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 / cache . Конечно, вы всегда можете иметь один файл ~/.appname.conf, каталог ~/.appname.db или ~/.appname/ для хранения конфигураций и кэширования, но это будет нестандартно; не «плохо» - просто нестандартно.

См. Также

18
ответ дан 17 June 2019 в 22:03

Другие вопросы по тегам:

Похожие вопросы: