Стандарт для этих проблем - Стандарт Файловой Иерархии . Это довольно большой документ. В основном (и очень грубо), стандартные пути в Linux:
/bin
& /sbin
для жизненно важных программ для ОС, sbin только для администраторов;
/usr/bin
& /usr/sbin
для не жизненно важных программ, sbin только для администраторов;
/var
для живых данных для программ. Это могут быть данные кэша, данные буфера, временные данные (если они отсутствуют /tmp
, которые стираются при каждой перезагрузке) и т. Д .;
/usr/local
для локально установленных программ. Как правило, он содержит программы, которые соответствуют стандартам, но не были упакованы для ОС, а скорее установлены вручную администратором (с помощью, например ./configure && make && make install
), а также сценариями администратора;
/opt
для программ, которые не упакованы и не соответствуют стандартам. Вы просто поместите все библиотеки вместе с программой. Часто это быстрое и грязное решение, но его также можно использовать для программ, которые созданы вами и для которых вы хотите иметь определенный путь. Вы можете создать свой собственный путь (например /opt/yourcompany
) внутри него, и в этом случае вам рекомендуется зарегистрировать его как часть стандартных путей;
/etc
не должны содержать программы, а скорее конфигурации.
Если ваши программы относятся к услугам, предоставляемым сервисом, /srv
также может быть хорошим местом для них. Например, я предпочитаю использовать /srv/www
для веб-сайтов, а не /var/www
для того, чтобы убедиться, что каталог будет содержать только данные, которые я сам добавил, и ничего из пакетов программного обеспечения.
Есть некоторые различия между дистрибутивами. Например, системы RedHat используют libexec
каталоги , а системы Debian / Ubuntu - нет.
FHS в основном используется дистрибутивами Linux (на самом деле я не знаю ни одной другой ОС, которая бы действительно соответствовала ему). Другие системы Unix не следуют этому. Например, системы BSD, как правило, используют /usr/local
для упакованных программ, что не относится к Linux. Солярис имеет очень разные стандартные пути.
Я настоятельно рекомендую вам прочитать документ FHS, на который я ссылался выше, если вы хотите узнать больше об этом.