Структура каталогов 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, так далее.).