Я запускаю множество приложений с открытым исходным кодом, включая java и tomcat. Похоже, что в большинстве инструкций мои приложения запускаются из /var
каталог. Но время от времени я также вижу /opt
каталог. Пока я нахожусь на этом, я также вижу /usr/local/
и даже /etc
также.
Когда мне следует устанавливать приложения в ту или иную папку? Есть ли у каждого из них плюсы и минусы? Связано ли это с историей вкусов (Solaris против Linux или Red Hat против Ubuntu)?
Стандарт для этих вопросов - Стандарт файловой иерархии. Это довольно большой документ. В основном (и очень грубо) стандартные пути в 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. У Solaris очень разные стандартные пути.
Я настоятельно рекомендую вам прочитать документ FHS, который я указал выше, если вы хотите узнать больше об этом.
opt
означает дополнительное программное обеспечение. var
означает переменные системные файлы. Поэтому ваши приложения должны идти в /opt
.
Это зависит от вашего местного стандарта.
Лично я ничего не устанавливаю в / var без уважительной причины. Мой / usr / local почти всегда монтируется nfs вне сети, поэтому все, что не упаковано, устанавливается в / opt.