38

Как вы обычно продолжаете установку пакетов в Linux, пакетов, которые не являются частью репозитория вашего дистрибутива?

Со своей стороны я привык устанавливать в /opt. Но с тех пор я увидел этот документ в Интернете: http://www.pathname.com/fhs/. Теперь я в замешательстве: по-видимому, /usr /local также была бы возможность.

В чем разница между обоими? Какие-нибудь лучшие практики, чтобы поделиться?

Спасибо

SirFabel

7 ответов7

31
  • Все, что должно быть скомпилировано и установлено в стиле Unix и соответствует FHS -> /usr/local
  • Все остальное (например, веб-приложение Java, которое поставляется со своим собственным сервером приложений и множеством ресурсов в zip-архиве -> /opt
24

Так же, как дополнительная интересная информация: оригинальное значение /usr/local заключается в том, что если /usr монтируется в сети (один /usr используется несколькими компьютерами), то /usr/local будет отдельной файловой системой, локальной для компьютера (раздел на локальном компьютере). диск).

И хотя по этой теме, даже если это не по теме: если есть несколько компьютеров с разными архитектурами, естественно, для каждой арки будет один /usr , но /usr/share будет еще одной отдельной файловой системой, общей для архитектур. (следовательно, «поделиться»).

7

Я делаю так, что если для него требуется префикс ИЛИ это бинарный пакет, я выбираю /opt (что в значительной степени соответствует подходу Solaris). Если я компилирую из источника /usr /local, как я иду.

6

Я помещаю все в личный каталог, а затем использую GNU stow.

Итак, я установлю пакет X.ver в /BASE/stow/X.ver . Затем GNU stow объединит все пакеты (с символическими ссылками) в /BASE/bin , /BASE/lib и т.д.

С конфликтами и удалением пакетов справиться гораздо проще.

2

Вот как я интерпретирую стандарт FHS:

/usr/local предназначен для локально созданных или локально установленных файлов, независимо от того, упакованы они или нет, но они становятся частью этого экземпляра операционной системы.

/opt - это место для установки "чужих" пакетов, не являющихся частью операционной системы.

Пока вы используете файлы только в одной системе, в которой вы их создаете, /usr /local подходит, и поэтому он является базовым каталогом по умолчанию для подавляющего большинства программного обеспечения с открытым исходным кодом.

Если вы планируете распространять свой пакет, я бы рекомендовал использовать пользовательский базовый каталог, такой как /opt /myPackage.

1

Солярис использовал / опт много. Многие современные дистрибутивы Linux ожидают пакеты в / usr / local /. Идея та же - место для установки программного обеспечения, которое заставляет эту машину делать то, что она делает, в отличие от операционной системы. Это примерно аналогично "Программным файлам" в системе Windows.

Выберите один и придерживайтесь его. Достаточно просто сделать символическую ссылку /opt на /usr /local.

0

Если вы перекомпилируете программное обеспечение, предоставляемое дистрибутивом операционной системы, для использования нескольких преимуществ архитектуры, характерных для вашего собственного компьютера, используйте /usr /local.

Если вы добавляете часть программного обеспечения из других источников, кроме дистрибутива операционной системы, поместите его в /opt.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .