Как добавить исполняемые файлы, установленные в / opt, в путь?

11

Можно /optли безопасно устанавливать ссылки на программы, установленные в папке /usr/local/bin, которая по умолчанию уже находится в PATH в Ubuntu и других дистрибутивах Linux?

В качестве альтернативы, есть ли какая-то причина для создания отдельного /opt/binи добавления этого в PATH, как в этом ответе: Разница между каталогами / opt / bin и / opt / X / bin ?

Кеннет Хэнсон
источник

Ответы:

10

Есть разница между /optи /usr/local/bin. Так что просто символическая ссылка двоичных файлов из одного в другой может привести к путанице. Я бы не перепутал их.

/optпредназначен для установки пакетов дополнительного программного обеспечения , тогда как /usr/localкаталог предназначен для системного администратора при локальной установке программного обеспечения (с помощью makeи make install). /usr/local/binпредназначен для двоичных файлов из программного обеспечения, установленного под /usr/local.

Согласно Стандарту Файловой Иерархии , правильным способом было бы добавить /opt/<package>/binк $PATHкаждому отдельному пакету. Если это слишком больно (например, если у вас есть неисчислимое количество /opt/<package>/binдиректорий), вы (локальный администратор) можете создавать символические ссылки /opt/<package>/binна /opt/binкаталог. Это может быть добавлено к пользователям $PATHодин раз.

хаос
источник
А почему? /usr/local/binдля использования системным администратором. Если администратор хочет установить программное обеспечение /optи создать ссылки для него /usr/local, это совершенно бессмысленно.
Жиль "ТАК - перестань быть злым"
@ Жиль: Конечно, он может, он может делать все, что захочет, он системный администратор. Но лучшая практика будет держать их отдельно.
хаос
Хорошо, похоже, это больше вопрос стандартного соглашения, чем все остальное. Я был немного обескуражен отсутствием симметрии «Есть разница между /optи /usr/local/bin», а не «... между /optи /usr/local» или «... между /opt/binи /usr/local/bin», но после окончания я подозреваю, что это означало как способ объединить /opt/binи /opt/.../bin. Если так, то мне интересно, можно ли улучшить формулировку.
Кеннет Хэнсон
1
@chaos Вы пишете, что, согласно FHS, /opt/package/bin/или, по крайней мере, /opt/bin/должны быть добавлены в $ PATH. Я прочитал опубликованную ссылку, и она многое говорит о том, как структурировать /optи что там внутри, но я не смог найти подтверждения того, что какой-либо из этих каталогов /optдолжен быть добавлен в $ PATH. Не могли бы вы уточнить, как вы пришли к такому выводу? Приветствия
Вик
@vic По той же причине, по которой вы бы поместили любой другой /whatever/binкаталог в $ PATH - чтобы вы могли вызывать исполняемые файлы, не вводя каждый раз полный путь.
Кеннет Хэнсон