Эквиваленты XDG_CONFIG_HOME и XDG_DATA_HOME на Mac OS X?

18

Я планирую разработать кросс-платформенный скрипт. В Linux и других операционных системах он сохранит конфигурацию в XDG_CONFIG_HOME и файлы данных (в частности, загруженные плагины) в XDG_DATA_HOME . В Windows он будет использовать APPDATA для обоих (если у кого-то нет лучшей идеи). Однако, что было бы правильным в Mac OS X?

С первого взгляда в удобном каталоге ~/Library Macbook я видел Preferences и Application Support папок. Первоначально планировалось использовать их, но Preferences , похоже, содержит только плюсы с обратными доменными именами, такими как com.apple.foo.bar.baz.plist , и каждая папка в Application Support соответствует набору в /Applications , поэтому я не уверен, насколько хорошо система будет реагировать на файлы, которые не соответствуют его стандартам. Хранение их непосредственно в ~/Library может быть вариантом, но я не хочу загрязнять его с помощью бродячего файла myscript.conf , если для него лучше.

Где я должен хранить эти файлы? (И, пожалуйста, не говорите только ~/.myscript . Я знаю, что это традиция Unix, но мне не нравится видеть случайные dotfiles в домашнем каталоге.)

    
задан LeafStorm 30.07.2010 в 19:28
источник
  • Если это инструмент командной строки или используется другими разработчиками, пожалуйста, просто используйте XDG-каталоги. Или, по крайней мере, использовать их, если они существуют, даже если вы вернетесь к ~ / Library по умолчанию вместо ~ / .config et al. –  OJFord 08.10.2016 в 23:02

2 ответа

4

Я бы использовал ~/Library/Application Support/script_name/ . Подкаталоги внутри Application Support обычно используются различными приложениями, включая собственные программные продукты Apple. Но он не применяется ОС и не привязан к приложениям внутри /Applications . Таким образом, вы можете свободно создавать в нем свой собственный каталог.

Для структуры каталогов OS X в целом см. это Apple документ .

    
ответ дан Yuji 31.07.2010 в 01:30
источник
  • Хорошо, круто. Это подходит для конфигурации, а также для файлов данных? –  LeafStorm 31.07.2010 в 19:34
  • Оба прекрасны. Я добавил в ответ официальный документ в качестве ссылки. –  Yuji 01.08.2010 в 19:55
  • Ссылка кажется устаревшей, может быть, эта: developer.apple.com/library/content/documentation/... –  Jan Rüegg 26.05.2017 в 14:37
25

Сравнение документации Apple для различных путей к спецификациям базового каталога XDG приближается к следующим местоположениям:

  • XDG_CONFIG_HOME ▶ ︎ ~/Library/Preferences/
  • XDG_DATA_HOME ▶ ︎ ~/Library/
  • XDG_CACHE_HOME ▶ ︎ ~/Library/Caches/

Сопоставление местоположений спецификации базового каталога XDG для «Моего приложения» в Mac OS X может выглядеть так:

  • XDG_CONFIG_HOME ▶ ︎ ~/Library/Preferences/name.often.with.domain.myapp.plist
  • XDG_DATA_HOME ▶ ︎ ~/Library/My App/
  • XDG_CACHE_HOME ▶ ︎ ~/Library/Caches/My App/

Эти отображения кажутся довольно разумными, но они не точны. Некоторые типы кеша или данных могут быть подходящими для ~/Library/Application Support/My App , а другие могут быть лучше всего в временных точках или в наборе приложений. Все это по соглашению, и одни и те же причины использовать лучшие места XDG_ применимы к использованию лучших мест в системе Mac OS X.

Ваше раздражение в ~/.myscript соответствует рекомендациям Apple: «Не загрязняйте пространство пользователя».

Литература:

ответ дан jla 22.02.2011 в 23:39
источник
  • XDG _ * _ HOME не являются приложениями - ваши примеры должны, вероятно, читать «XDG_CONFIG_HOME -> ~ / Library / Preferences /», «XDG_DATA_HOME -> ~ / Library /» и «XDG_CACHE_HOME -> ~ / Library / Caches /». (Ваша почта была полезной, хотя! Я просто предоставляю эту небольшую поправку для потомков) –  Josh Tilles 22.07.2013 в 16:38
  • Примерами были места для «Моего приложения». Я добавил общее сопоставление для ответа, в котором показаны местоположения, не относящиеся к приложениям. Благодарю. –  jla 26.07.2013 в 20:16
  • Ссылки выглядят устаревшими, было ли это примерно так: developer.apple.com/library/content/documentation/... –  Jan Rüegg 26.05.2017 в 14:37
  • Обновление ссылки: справочная библиотека Mac OS X: важные Java-каталоги в Mac OS X –  Max Pole 02.08.2017 в 13:10