Перейти к содержимому

/ usr / local или / opt?

38

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

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

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

Спасибо

SirFabel

20 242 просмотра

7 ответов

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

lintian больше не позволяет устанавливать пакеты в / opt и / usr / local

Cristiano · 10 лет назад · 0
lajuette ответил 16 лет назад
L 4 219
24

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

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

Нет ... исторически (да, я был там!) / Usr и др. Имели материал, предоставленный поставщиком, / usr / local был локально установленный материал (т. Е. Bash, gcc и другие хорошие вещи).

vonbrand · 13 лет назад · 4
7

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

Lee ответил 16 лет назад
L 171
6

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

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

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

Я обычно использовал / usr / local / stow / как дом для хранения «пакетов», и чувствую, что это хорошая практика - если кто-то заглядывает в / usr / local, он делает очевидным, что происходит и какая система поддерживает символические ссылки.
Stephanie · 14 лет назад · 0
R Samuel Klatchko ответил 16 лет назад
R 416
2

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

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

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

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

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

jlliagre ответил 16 лет назад
J 11 779
1

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

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

Мне нравится комментарий Ли, хороший способ думать о проблеме. Мне было бы немного странно иметь / opt на машине Debian, но это, вероятно, просто личное предпочтение.

Kyle Hodgson · 16 лет назад · 0
Kyle Hodgson ответил 16 лет назад
K 132
0

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

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

cp7781 ответил 8 лет назад
C 1