Почему мой пакет был установлен в / opt?

Некоторое время назад я установил couchdb из источника на моей машине debian. Казалось, что все наладилось, и все сработало.

Несколько недель спустя я хотел обновить и установить из .deb с помощью dpkg. Кажется, что все теперь установлено под /opt . Кажется, все работает нормально, но я не совсем понимаю, почему все это было установлено в /opt . Он не чувствует себя «гладким», поскольку когда вещи были установлены непосредственно в /usr/local/bin и /etc и /var/log . Это сложнее настроить, чем когда я только что редактировал файлы конфигурации, которые были установлены в / etc / couchdb

Кто-нибудь подумает, почему установка /opt является «хорошей вещью» и почему это лучший способ сделать что-то, чем предыдущая установка, которая была из источника?

Я знаю, что это довольно расплывчатый вопрос, но я только компетентен с Linux, а не экспертом, и не понимаю, что стоит за установкой /opt

  • Какой самый подходящий каталог для размещения файлов, разделяемых между пользователями?
  • В чем разница между / opt и / usr / local?
  • Неправильно / опасно / неуместно помещать произвольные резервные копии в / var / backups?
  • Как началась функция ~ / .local / bin? Насколько распространено это?
  • Где я должен установить морской файл-сервер: / opt или / home?
  • Установка программы в Linux через пакет
  • Почему «dir-or-file-in-usr-local» является ошибкой, а не предупреждением?
  • Где я могу найти официальный стандарт иерархии файлов для UNIX?
  • 4 Solutions collect form web for “Почему мой пакет был установлен в / opt?”

    Стандарт иерархии файловой системы дает следующие определения:

    • /opt : дополнительные программные пакеты приложений
    • /usr/local : Локальная иерархия (для использования системным администратором при локальном установке программного обеспечения)

    То, как я читал это:

    • Стандартные системные приложения должны входить в /bin и /usr/bin (подразумевается)
    • Сторонние пакеты должны войти в /opt
    • Что-то должно быть установлено только в /usr/local если системный администратор хочет, чтобы он

    По расширению, если sysadmin устанавливает что-то с помощью dpkg или rpm , он не должен по умолчанию /usr/local в /usr/local .

    Так что, возможно, это правильно.

    Политика Debian говорит

    9.1.2 Программы для сайтов

    В соответствии с требованиями FHS пакеты не должны размещать файлы в / usr / local, либо помещая их в архив файловой системы, который должен быть распакован dpkg, либо манипулировать ими в своих сценариях поддержки.

    Такого конкретного запрета на / opt нет. Политика также добавляет

    Расположение всех установленных файлов и каталогов должно соответствовать стандарту иерархии файловой системы (FHS) версии 2.3 с исключениями, указанными ниже, и за исключением случаев, когда это будет нарушать другие условия политики Debian.

    и в Стандарте иерархии файлов

    Каталоги / opt / bin, / opt / doc, / opt / include, / opt / info, / opt / lib и / opt / man зарезервированы для использования локальным системным администратором.

    а затем дальше вниз

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

    Обратите внимание, что политика предназначена для самого Debian, но в целом это соответствует рекомендации по лучшей практике. Результат, если я читаю это правильно, заключается в том, что не стоит устанавливать бинарные (deb) пакеты в / usr / local, но нормально устанавливать в / opt, если это не мешает использованию sysadmin космос.

    Мое личное мнение состоит в том, что неплохая идея иметь пакеты deb в / usr / local или / opt. Я не согласен с D4RIO, когда он говорит

    Существует пакет couchdb для debian (я имею в виду, официальный), поэтому, если вы скачали другое, это нормально, он также должен быть установлен в / opt или / usr / local / bin.

    Обычно вам не нужны два разных пакета deb, соответствующие одному и тому же программному обеспечению, и если они на самом деле являются одним и тем же именем пакета, dpkg его не позволит. Неофициальные пакеты Debian программного обеспечения, доступные как официальный пакет, обычно (но не всегда) имеют то же название, что и официальные; вы просто устанавливаете один или другой, а не оба.

    Для чего это стоит, я думаю, что положить deb-пакеты в / opt – плохая идея, и только последнее появление этого я видел с помощью Google Chrome. Однако Google не всегда придерживается лучших практик.

    /opt для стороннего программного обеспечения. Существует пакет couchdb для debian (я имею в виду, официальный), поэтому, если вы скачали другое, это нормально, он также должен быть установлен в /opt или /usr/local/bin .

    Несмотря на то, что это не Debian, руководство по упаковке Fedora довольно ясно говорит об этом:

    … пакет Fedora не может содержать файлы или каталоги под / opt или / usr / local …

    Причина, по которой пакеты не вставляются в / opt, довольно проста: как было указано ранее, в Стандарте иерархии файлов указано, что …

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

    Это то, что не может быть гарантировано пакетами, поскольку установка или обновление могут изменять такие данные.

    Я знаю, что Fedora не Debian, но я думаю, что в этом случае они очень похожи. Тем более, что Lintian, средство проверки пакетов для Debian, имеет для этого специальную ошибку: dir-or-file-in-opt

    Linux и Unix - лучшая ОС в мире.