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

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

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

Итак, какой из них «более правильный»?

27 голосов | спросил Eiver 29 PMpTue, 29 Apr 2014 15:09:36 +040009Tuesday 2014, 15:09:36

5 ответов


18

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

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

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

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

ответил Leiaz 29 PMpTue, 29 Apr 2014 15:55:15 +040055Tuesday 2014, 15:55:15
3

Если вы будете компилировать свое собственное программное обеспечение, вы в конечном счете контролируете место установки. По соглашению программное обеспечение, скомпилированное и установленное вручную (не через диспетчер пакетов, например 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

ответил Creek 29 PMpTue, 29 Apr 2014 18:49:32 +040049Tuesday 2014, 18:49:32
1

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

ответил bbsanem 29 PMpTue, 29 Apr 2014 15:14:13 +040014Tuesday 2014, 15:14:13
0

У меня был такой же вопрос при установке eclipse через установщик eclipse. Я заметил, что gimp, perl и vim установлены в папку /usr /share и решили установить его там.

ответил senpai 3 PMpSun, 03 Apr 2016 20:58:19 +030058Sunday 2016, 20:58:19
0

Существует два способа установки программ, в зависимости от того, как они упакованы.

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

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

ответил Štěpán Doan 4 52016vEurope/Moscow11bEurope/MoscowFri, 04 Nov 2016 06:51:37 +0300 2016, 06:51:37

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132