В какой каталог мне устанавливать программы в Linux?


44

Я хочу установить программу в Linux и запустить ее как демон. (Team Speak 3 в данном случае, но вопрос носит общий характер). Пакет не предоставляется, только tarred-файлы. Где в структуре каталогов я должен разместить такую ​​программу по соглашению?

В Интернете я обнаружил, что / opt предназначен для «дополнительных приложений-дополнений», а / usr - для «пользовательских программ». Я нашел один урок, предлагающий / opt, а другой sugested / usr.

Так какой из них "более правильный"?


1
«Более правильный» зависит от вашего распространения. Вам следует ознакомиться с рекомендациями вашего дистрибутива о том, где разместить программное обеспечение, которое не управляется менеджером пакетов (часто /usr/local) ИЛИ о том, как создать свой собственный пакет для него.
Лейаз

Спасибо, Лейаз. Ваш комментарий помог мне найти ответ ( askubuntu.com/questions/1148/… ). Таким образом, я предполагаю, что в моем случае это будет / opt (Использование Linux Mint, основанного на Ubuntu), а приложение использует одну папку. Если вы преобразуете свой комментарий в ответ, я приму его.
Eiver

Ответы:


27

«Более правильный» зависит от вашего распространения. Вам следует ознакомиться с рекомендациями вашего дистрибутива о том, где разместить программное обеспечение, которое не управляется менеджером пакетов (часто /usr/local) ИЛИ о том, как создать свой собственный пакет для него.

Как вы сказали, TeamSpeak просто помещает все в одну папку (и может быть нелегко реорганизовать), да /opt/, вероятно, лучше.

(Но, например, в Archlinux менеджер пакетов может быть установлен там, так что я бы все-таки сделал PKGBUILD для установки /opt.)

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


Есть ли псевдоним, чтобы узнать, где находятся каждый каталог по использованию? (например, где разместить корневые конфигурации, куда поместить двоичные файлы, зависимости, шаблоны ...)
Сандбург,

5

Если вы будете компилировать свое собственное программное обеспечение, то в конечном итоге вы контролируете место установки. По соглашению, программное обеспечение, скомпилированное и установленное вручную (не через менеджер пакетов, например, apt, yum, pacman), устанавливается в /usr/local. Некоторые пакеты (программы) создают подкаталог /usr/localдля хранения всех своих соответствующих файлов, таких как /usr/local/openssl. Другие пакеты установят необходимые файлы в существующие каталоги, такие как /usr/local/sbinи /usr/local/etc. Это просто места по умолчанию и могут быть изменены во время компиляции.

При компиляции программного обеспечения местоположение установки можно указать с помощью --prefix=параметра при запуске ./configure. Настоятельно рекомендуется проверить все доступные параметры для вашего пакета, запустив его $ ./configure --help | less. Кроме того, просмотр документов INSTALL и README, входящих в комплект поставки, является хорошей идеей. Как правило, они включают инструкции по установке и информацию о зависимостях, характерную для данного пакета.

Следует также отметить, что, хотя вы можете хранить программное обеспечение где угодно, согласно FHS , исходный код для локально установленного программного обеспечения должен храниться в /usr/local/src Стандартизации, где вы храните свои исходные деревья, что позволит вам легко найти дерево, если вам нужно скопировать запас файл конфигурации или бинарный. Даже если некоторые пакеты используют его, ваш исходный код не должен храниться в том /usr/srcвиде, который предназначен для системного программного обеспечения, такого как ядро.

Наконец, вам нужно убедиться, что ваше место установки включено в ваш $PATH. Если вы решили установить свой пакет, /optно его нет в вашей $PATHоболочке, он не найдет исполняемые файлы, и вам придется использовать абсолютный путь для вызова ваших программ. Вот некоторые отличные обсуждения от AU о настройке вашего$PATH

Дополнительное чтение: man hier


5

Standard Base Linux и Filesystem Hierarchy Standard , возможно , являются стандарты , где и как вы должны установить программное обеспечение на системе Linux и хотел бы предложить помещая программное обеспечение, которое не входит в дистрибутив либо /optили /usr/local/вернее подкаталоги в нем ( /opt/<package> /opt/<provider> /usr/local/bin).

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


Это в значительной степени просто переформулирует вопрос, а не отвечает на него. ФП знал об этом /optи /usr/local/был двумя доступными вариантами, но хотел получить конкретную информацию о том, какой из этих вариантов использовать. Это могло бы быть правильным ответом, если бы вместо этого он утверждал, что эти два местоположения взаимозаменяемы (хотя я бы поспорил, что в таком случае это будет правильный ответ).
JBentley

1

Двоичные файлы идут в binпапке по общепринятым правилам, как вы будете организовывать структуру пакетов, зависит от вас, я могу подумать, /opt/<prog_name>/если это просто список двоичных файлов.


Я боюсь, что ребята из Team Speak 3 создали программу таким образом, чтобы все, что ей нужно, находилось в одной папке (двоичные файлы, файлы конфигурации, журналы), поэтому она не использует / bin или / etc или / var / log
Эйвер

1

У меня был тот же вопрос при установке Eclipse через установщик Eclipse.

Я заметил, что Gimp, Perl и Vim установлены в /usr/shareпапке, и решил установить его там.


0

Есть два способа установки программ в зависимости от того, как они упакованы.

  1. Через менеджер программного обеспечения (apt, synaptic, Gdebi и т. Д.) - программа находится в форме пакета, обычно .deb или rpm. Менеджеры программного обеспечения в большинстве случаев обрабатывают зависимости и обычно устанавливают двоичные файлы /usr/bin, файлы конфигурации /etcи так далее. Как правило, они также могут создать файл конфигурации для программы в вашем доме ~/.foo. Если вы можете редактировать этот файл, вы также можете легко изменить настройки для вашего сеанса таким образом. Когда вы удаляете пакет, менеджер найдет все файлы и аккуратно удалит их (он хранит все места в специальном текстовом файле). Но он может сохранить некоторые файлы конфигурации, например, в вашей домашней папке.

  2. Вы загружаете программу (обычно сжатую) в виде предварительно скомпилированных двоичных файлов для вашей архитектуры. Исполняемый файл программы, как правило , в одной папке , рядом с другими файлами (динамически подключаемыми библиотеками и т.д.) Вся эта папка может быть скопирована, с привилегиями суперпользователя, либо /optили /usr/binи может, если разрешения позволяют быть использован любым пользователем. Я сам помещаю папки с бинарными файлами в мою домашнюю папку ~/bin. Теперь вы сможете запустить программу, вызвав ее bin-файл.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.