Рейтинг:0

Где устанавливается программное обеспечение в Linux? В чем разница между /opt и /usr?

флаг us

Я хотел бы прояснить философию установки программных приложений и библиотек и лучшие практики в Linux.Насколько я понимаю из Стандарта иерархии файловой системы (FHS), новое программное обеспечение должно быть установлено в /opt, и это то, что делает менеджер пакетов. Но устанавливает ли менеджер пакетов прикладное программное обеспечение в каталог /use/local или только программное обеспечение библиотеки? Например, я установил библиотеку Eigen c++, которая представляет собой библиотеку на основе заголовочного файла, используя:

sudo apt установить libeigen3-dev

Я нашел файлы Eigen в /usr/include. Но, прочитав документы CMake, когда я разрабатываю библиотеки C++, мне следует настроить CMake для их установки в /usr/local (это значение по умолчанию для CMAKE_INSTALL_PREFIX)? Возникает вопрос, почему Eigen был установлен в /usr/include вместо /usr/local/include? Разве каталоги /usr/bit/usr/include не для системных приложений, таких как команды ls и cat?

Кроме того, в чем разница между библиотеками, сохраненными в /usr/local и /usr/share?

Заранее большое спасибо за вашу помощь. Я надеюсь получить четкое представление о лучших методах установки программного обеспечения приложений и библиотек в Linux.

Rob avatar
флаг in
Rob
Я смиренно верю, что на этот вопрос нет единого ответа, поэтому, например. если вы скажете $whereis firefox > ответ будет выглядеть примерно так: firefox: /usr/bin/firefox /etc/firefox /usr/lib/firefox /usr/share/man/man1/firefox.1.gz и так упростить что вы делаете: $ какой firefox и вывод будет: /usr/bin/firefox . Так что ваш удар в порядке, но не окончательный. Пакеты всегда должны иметь свои определенные записи и должны храниться отдельно ;-) Нет закона, предписывающего, какая папка и т.д.
waltinator avatar
флаг it
Читать `человек hier`.
user535733 avatar
флаг cn
«*Новое программное обеспечение должно быть установлено в /opt*» не соответствует действительности. /opt — это просто одно из нескольких возможных местоположений, совместимых с FHS.
Рейтинг:6
флаг cn

/выбрать/ используется для сторонних приложений, которые предоставляют tar-шар для извлечения. Как правило, программное обеспечение предоставляется полностью настроенным с правильными разрешениями, и вы получаете инструкцию скопировать службу в систему для ее активации. Mysql, Apache, Jasperserver предоставляют альтернативные варианты установки.

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

Когда программное обеспечение установлено в /выбрать/ вы обычно устанавливаете его с номером версии в имени каталога, поэтому вы можете установить более 1 версии и использовать символическую ссылку для активной версии. Таким образом, вы можете установить Mysql v8 в системе, которая все еще использует v5, протестировать свое приложение, прежде чем переходить к следующему выпуску Ubuntu.

/уср/ является частью Linux по умолчанию и используется для хранения частей установки через диспетчер пакетов этой системы. Чтобы избежать дублирования (чем Windows страдала в более старых версиях) программного обеспечения Linux в каталогах, с которым согласилась большая группа создателей. Еще одним преимуществом является то, что программное обеспечение может быть меньше, поскольку вам не нужно предоставлять библиотеки с вашим программным обеспечением.

Ahmad Abuaish avatar
флаг us
Привет @Rinzwind, Большое спасибо за подробный ответ. Ваш ответ помог мне понять назначение `/ opt`. Я также углубился в FHS и понял, как правильно использовать `/usr/local`. Программное обеспечение, установленное локально, должно быть установлено в `/usr/local`, а программное обеспечение, установленное менеджером пакетов, будет установлено в `/usr`. Итак, в моих списках CMakeList я должен использовать `/usr/local/lib` и `/usr/local/include` в качестве места назначения. Еще раз большое спасибо, @Rinzwind, за подробный ответ.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.