У який каталог я повинен встановлювати програми в Linux?


43

Я хочу встановити програму в Linux і запустити її як демон. (Команда говорить у цьому випадку 3, але питання носить загальний характер). Пакет не надається, лише промарковані бінарні файли. Куди в структурі каталогів я можу поставити таку програму за умовами?

В Інтернеті я виявив, що / opt призначено для "додаткових додатків додатків", а / usr - для "програм користувача". Я знайшов один підручник, який пропонує / вибирати, а інший сугестував / usr.

То хто з них "правильніше"?


1
"Більш правильне" залежить від вашого розподілу. Ви повинні перевірити вказівки щодо розповсюдження вашого дистрибутива щодо того, куди розміщувати програмне забезпечення, яке не управляється менеджером пакунків (часто /usr/local) АБО як створити свій власний пакет для нього.
Leiaz

Дякую, Леяз. Ваш коментар допоміг мені знайти відповідь ( askubuntu.com/questions/1148/… ). Тож я думаю, що в моєму випадку має бути / opt. (Використання Linux Mint, який базується на Ubuntu), і програма використовує одну папку. Якщо ви перетворите свій коментар у відповідь, я прийму його.
Ейвер

Відповіді:


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оболонці, не знайдете виконувані файли, і вам доведеться використовувати абсолютний шлях для виклику ваших програм. Ось кілька чудових дискусій з АС щодо налаштування вашого$PATH

Додаткове читання: man hier


5

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

Найкраща практика полягає в перетворенні завантаженого вами програмного забезпечення в інстальований пакет програмного забезпечення, що належить до вашого дистрибутива, наприклад, формати dpkg або rpm. Це полегшить звітування, оновлення та чистое видалення програмного забезпечення.


Це в значній мірі просто повторно задає питання, а не відповідає на нього. OP було відомо , що /optі /usr/local/були доступні два варіанти , але хотів конкретну інформацію про якої один з цих варіантів використання. Це може бути достовірною відповіддю, якби натомість висловив твердження, що ці два місця є взаємозамінними (хоча я заперечу, що це була б правильна відповідь у такому випадку).
JBentley

1

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


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

1

У мене виникло те саме питання під час встановлення Eclipse через інсталятор Eclipse.

Я помітив, що Gimp, Perl і Vim встановлені в /usr/shareпапці і вирішив її встановити там.


0

Існує два способи встановлення програм, залежно від їх упаковки.

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

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.