Я хочу установить программу в Linux и запустить ее как демон. (Team Speak 3 в данном случае, но вопрос носит общий характер). Пакет не предоставляется, только tarred-файлы. Где в структуре каталогов я должен разместить такую программу по соглашению?
В Интернете я обнаружил, что / opt предназначен для «дополнительных приложений-дополнений», а / usr - для «пользовательских программ». Я нашел один урок, предлагающий / opt, а другой sugested / usr.
Так какой из них "более правильный"?
/usr/local
) ИЛИ о том, как создать свой собственный пакет для него.Ответы:
«Более правильный» зависит от вашего распространения. Вам следует ознакомиться с рекомендациями вашего дистрибутива о том, где разместить программное обеспечение, которое не управляется менеджером пакетов (часто
/usr/local
) ИЛИ о том, как создать свой собственный пакет для него.Как вы сказали, TeamSpeak просто помещает все в одну папку (и может быть нелегко реорганизовать), да
/opt/
, вероятно, лучше.(Но, например, в Archlinux менеджер пакетов может быть установлен там, так что я бы все-таки сделал PKGBUILD для установки
/opt
.)Кроме того, дистрибутивы обычно пытаются следовать стандарту иерархии файловой системы , поэтому здесь можно найти более общее соглашение.
источник
Если вы будете компилировать свое собственное программное обеспечение, то в конечном итоге вы контролируете место установки. По соглашению, программное обеспечение, скомпилированное и установленное вручную (не через менеджер пакетов, например, 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
источник
Standard Base Linux и Filesystem Hierarchy Standard , возможно , являются стандарты , где и как вы должны установить программное обеспечение на системе Linux и хотел бы предложить помещая программное обеспечение, которое не входит в дистрибутив либо
/opt
или/usr/local/
вернее подкаталоги в нем (/opt/<package> /opt/<provider> /usr/local/bin
).Рекомендуется преобразовывать загружаемое программное обеспечение в устанавливаемый программный пакет, встроенный в ваш дистрибутив, например в форматы dpkg или rpm. Это облегчит создание отчетов, обновление и удаление программного обеспечения.
источник
/opt
и/usr/local/
был двумя доступными вариантами, но хотел получить конкретную информацию о том, какой из этих вариантов использовать. Это могло бы быть правильным ответом, если бы вместо этого он утверждал, что эти два местоположения взаимозаменяемы (хотя я бы поспорил, что в таком случае это будет правильный ответ).Двоичные файлы идут в
bin
папке по общепринятым правилам, как вы будете организовывать структуру пакетов, зависит от вас, я могу подумать,/opt/<prog_name>/
если это просто список двоичных файлов.источник
У меня был тот же вопрос при установке Eclipse через установщик Eclipse.
Я заметил, что Gimp, Perl и Vim установлены в
/usr/share
папке, и решил установить его там.источник
Есть два способа установки программ в зависимости от того, как они упакованы.
Через менеджер программного обеспечения (apt, synaptic, Gdebi и т. Д.) - программа находится в форме пакета, обычно .deb или rpm. Менеджеры программного обеспечения в большинстве случаев обрабатывают зависимости и обычно устанавливают двоичные файлы
/usr/bin
, файлы конфигурации/etc
и так далее. Как правило, они также могут создать файл конфигурации для программы в вашем доме~/.foo
. Если вы можете редактировать этот файл, вы также можете легко изменить настройки для вашего сеанса таким образом. Когда вы удаляете пакет, менеджер найдет все файлы и аккуратно удалит их (он хранит все места в специальном текстовом файле). Но он может сохранить некоторые файлы конфигурации, например, в вашей домашней папке.Вы загружаете программу (обычно сжатую) в виде предварительно скомпилированных двоичных файлов для вашей архитектуры. Исполняемый файл программы, как правило , в одной папке , рядом с другими файлами (динамически подключаемыми библиотеками и т.д.) Вся эта папка может быть скопирована, с привилегиями суперпользователя, либо
/opt
или/usr/bin
и может, если разрешения позволяют быть использован любым пользователем. Я сам помещаю папки с бинарными файлами в мою домашнюю папку~/bin
. Теперь вы сможете запустить программу, вызвав ее bin-файл.источник