/ usr / local або / opt?


43

Як ви зазвичай дієте до встановлення пакунків на Linux для пакунків, які не входять до складу репортажу вашого дистрибутива?

З мого боку я звик встановлювати / вибирати. Але відтоді я бачив цього документа в Інтернеті: http://www.pathname.com/fhs/ . Зараз я розгублений: мабуть, / usr / local також був би можливим.

Яка різниця між обома? Якісь найкращі практики для спільного використання?

Спасибі

СірФабель


Територія Священної війни та не дуже програмна тема для завантаження.
dmckee

1
Аналогічне запитання у Ask Ubuntu , superuser , unix & linux
kenchew

Відповіді:


32
  • Все, що має бути складено та встановлено у стилі Unix та відповідає FHS ->/usr/local
  • Все інше (наприклад, веб-додаток java, що постачається із власним сервером додатків та завантаженням ресурсів у zip-архіві -> /opt

lintian забороняють встановлювати пакунки в / opt ні / usr / local
Cristiano

24

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

І хоча на цю тему, навіть якщо це питання поза темою: Якщо є кілька комп’ютерів з різною архітектурою, природно, /usrдля кожного арки був би один , але це /usr/shareбула б ще одна окрема файлова система, спільна між архітектурами (отже, "поділитися") .


4
Ні ... історично (так, я там був!) / Usr et al мали матеріали, надані постачальником, / usr / local був встановлений на місцевому рівні (тобто, bash, gcc та інші приємні речі).
фонбранд

@vonbrand Ви справді суперечите відповіді? Це просто звучить так, як все, що потрібно ділитися між хостом, буде / usr, і те, що теж не потрібно, буде в / usr / local
Didier A.

@Didier A., ​​коли я почав використовувати Unix (80-ті роки), там була одна машина, без мереж ... і вони мали / usr та / usr / local.
vonbrand

@vonbrand О, бачу, цікаво. Тоді здається, що початковий намір мати / usr та / usr / local все ще залишається загадкою.
Дідьє А.

@Didier A., ​​знову ж таки: / usr - це те, що було поставлено з операційною системою, "стандартні" речі, / usr / local - це місцеві доповнення (домашнє пиво, отримане з Usenet, заповнене від дружнього колеги на конвенті, ...) . Не стандартний, просто загальне використання.
фонбранд

7

Як я це роблю, це те, що якщо він вимагає префікса до себе АБО це бінарний пакет, я переходжу на / opt (що в значній мірі є способом Solaris). Якщо я збираюсь з джерела / usr / local, то як я йду.


6

Я все помістив у приватний каталог, а потім використовую GNU stow .

Отже, я встановлю пакет X.ver в /BASE/stow/X.ver. GNU урочище буде об'єднати всі пакети (з симлінк) в /BASE/bin, /BASE/libі т.д.

Конфлікти та видалення пакунків набагато простіше вирішити.


Я зазвичай використовую / usr / local / stow / <packagename> як дім для зберігання "пакунків", і вважаю, що це є хорошою практикою - якщо хтось інший заглядає в / usr / local, це дає зрозуміти, що відбувається і що система підтримує символьні посилання.
Стефанія

3

Ось як я інтерпретую стандарт FHS:

/ usr / local - це локально створені або локально встановлені файли, упаковані чи ні, що дещо стають частиною цього примірника Операційної системи.

/ opt - це місце для встановлення "іноземних" пакетів, що не входять до складу Операційної системи.

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

Якщо ви плануєте перерозподілити пакунок, я рекомендую використовувати спеціальний базовий каталог, як / opt / myPackage.


2

Solaris багато використовується / вибирає. Багато сучасних дистрибутивів Linux зараз очікують пакунків у / usr / local /. Ідея така ж - місце розмістити програмне забезпечення, яке змушує цю машину робити те, що робить, на відміну від операційної системи. Це приблизно аналогічно "Програмним файлам" в системі Windows.

Виберіть один і дотримуйтесь його. Досить просто символізувати / вибрати для / usr / local.


Мені подобається коментар Лі, приємний спосіб подумати над проблемою. Мені здавалося б трохи дивно мати / вибирати Debian, але це, мабуть, лише особисті переваги.
Кайл Ходжсон

Будь ласка, не варто. FHS може бути трохи датований, але це міркування про / usr vs / usr / local vs / opt є здоровим: стандарт, розподіл передбачено; встановлені на місцевому рівні, як домашнє пиво або експериментальні речі від github; нестандартні речі, надані продавцем.
vonbrand

0

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

Якщо ви додаєте частину програмного забезпечення з інших джерел, ніж ваш дистрибутив операційної системи, поставте його в / opt.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.