Я запускаю много приложений с открытым исходным кодом, включая Java и Tomcat. Кажется, что в большинстве инструкций мои приложения выполняются из /var
каталога. Но время от времени я также вижу /opt
каталог. Пока я на это, я тоже вижу /usr/local/
и даже /etc
так же.
Когда следует устанавливать приложения в одну папку или в другую? Есть ли плюсы и минусы каждого? Имеет ли это отношение к истории изменений (Solaris против Linux или Red Hat против Ubuntu)?
linux
installation
Тревор Оллред
источник
источник
Ответы:
Стандарт для этих проблем - Стандарт Файловой Иерархии . Это довольно большой документ. В основном (и очень грубо), стандартные пути в 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, на который я ссылался выше, если вы хотите узнать больше об этом.
источник
/srv
. Я искал место для своих git-репозиториев, и мне не нравилось, что мой контент Apache находится внутри/var/www
./srv
кажется идеальным местом.var
вместоdata
?/var
что это потому , что это для "различных данных". В первые дни Unix был размещен на одном диске. Когда этого было недостаточно, они получили новый, подключили его/usr
и переместили туда все пользовательские данные. Но этого было недостаточно, и старый диск снова был переполнен. Поэтому они переместили все двоичные файлы, без которых система могла загружаться, из/bin
в/usr/bin
. Им просто не хватает места. Позже им нужно было обмениваться данными между пользователями, чтобы они создали/var
и использовали их в качестве выпадающего списка. FHS полон унаследованных решений, подобных этому, и их следует принимать с щепоткой соли.opt
обозначает дополнительное программное обеспечение.var
обозначает переменные системные файлы. Поэтому ваши приложения должны идти в/opt
.источник
/var
предназначен для различных системных файлов, а не для "различных"./var
что это потому , что это для «различных данных». У меня все еще есть заметки из прединтернет-книги, которую я тогда читал.Это зависит от вашего местного стандарта.
Лично я ничего не устанавливаю в / var без веской причины. Мой / usr / local почти всегда монтируется nfs вне сети, поэтому все, что не упаковано, устанавливается в / opt.
источник
/usr
. Динамически генерируемые ЛИЭС может в конечном итоге в/var/lib
иногда, но я не вижу , что вы на самом деле установить в/var
, с точки администратора зрения. Программа может широко его использовать, но она должна быть совершенно пустой перед запуском программы.