Где хранить файлы данных, созданные программным обеспечением Linux?

У меня есть сценарий Python с make install (по умолчанию доступна опция /usr/local/lib/python2.7/dist-packages/). Но скрипт также генерирует файлы с изменяемыми пользователем данными во время обычного использования скрипта. Мне кажется, что я не должен хранить скомпилированные файлы скриптов в паре с данными. Что такое обычное место по умолчанию для хранения данных программного обеспечения в таких случаях?

1 ответ

Решение

Подводя итог из стандарта иерархии файловой системы:

Неизменяемые архитектурно-независимые данные должны быть в /usr/share или же /usr/local/share, Изменяемые данные должны помещаться в домашний каталог пользователя, если он специфичен для пользователя ( XDG дает дополнительные указания здесь), или в /var если он общесистемный (обычно для этого требуется каталог и файлы, принадлежащие группе, и приложение setgid для записи в общий файл).

/usr/share а также /usr/local/share обычно имеют структуру, которая несколько отражает /usr/lib а также /usr/local/lib; Я не знаю насчет Python, но в Perl есть модуль http://p3rl.org/File::ShareDir, который помогает модулю устанавливать и получать доступ к данным в общем каталоге, соответствующем каталогу, в котором установлен модуль.

И не забудьте другой вариант: просто спросите пользователя, куда должны идти данные.

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