Структура каталогов Linux для нового приложения

Я пишу новое приложение на Python, которое я собираюсь распространить среди нескольких коллег. Вместо моего обычного беззаботного отношения к простому содержанию и запуску внутри папки в моем домашнем каталоге, на этот раз я хотел бы расширить свой кругозор и фактически попытаться использовать структуру каталогов Linux, как это было задумано (по крайней мере, в некоторой степени). Можете ли вы прочитать мою разбивку ниже и прокомментировать и или дать рекомендации, если это не правильно.

Давайте назовем программу "Нарф"

/usr/narf - Install location for the actual python file(s).    
/usr/bin/narf - Either a softlink to the main python file above or use this location instead.    
/etc/narf - Any configuration files for app narf.    
/var/log/narf - Any log files for app narf.    
/usr/lib - Any required libraries for app narf.    
/run/narf - Any persistent (across reboot), but still temp files for app narf.    
/tmp/narf - Very temp files for app narf that go away with reboot

Я предполагаю, что должен придерживаться использования /usr/X (например, /usr/bin вместо просто /bin), так как мое приложение не критично для системы и является просто дополнением.

В настоящее время я использую 16 LTS, однако часть этого является попыткой стандартизировать мое приложение для любого популярного дистрибутива Linux.

Спасибо за помощь.

2 ответа

Решение

Единственная проблема, которая может у вас возникнуть, /run каталог. Он также используется как временное хранилище и рекомендуется только для привилегированных процессов. Таким образом, файлы, хранящиеся там, не являются постоянными, как вы предполагаете, и пропадут после перезагрузки.

В зависимости от назначения этих постоянных файлов вы можете хранить временные данные в ~/.local/share/narf каталог, если эти данные зависят от пользователя, или использовать /var/cache/narf (или же /var/tmp, поскольку он должен быть постоянным в соответствии с разбивкой Википедии) для постоянных данных.

/usr/narf - Install location for the actual python file(s).

Не. Пакеты не создают каталоги верхнего уровня в /usr для них самих. Если это файлы Python для использования вашим приложением, поместите их где-нибудь в /usr/share/narf, который предназначен для архитектурно-независимых файлов, используемых пакетом narf. Например, терминатор и /usr/share/terminator/terminatorlib/translation.py,

Если вы не создаете пакет, то все в /usr движется к /usr/local (так /usr/local/bin/narf, /usr/local/share/narf, так далее.).

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