Где хранить файлы данных, созданные программным обеспечением 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, который помогает модулю устанавливать и получать доступ к данным в общем каталоге, соответствующем каталогу, в котором установлен модуль.
И не забудьте другой вариант: просто спросите пользователя, куда должны идти данные.