Яке звичайне місце встановлення програм для Linux?


71

Наразі я встановлюю NetBeans, а каталог за замовчуванням - це /home/thomasowens/netbeans-6.8. Я не шанувальник цього місця, тому я дивлюся на /etc, /bin, /usr/binі /sbin. Чи є в Linux місце, яке, за умовою, є таким же, як C:\Program Filesкаталог Windows ?

Відповіді:


97

Відповідно до стандарту ієрархії файлової системи , в залежності від програми є прийнятні кілька місць. Я тут цитую це з цього приводу.

  • bin коротше для "бінарних", звичайно
  • sbin є скороченням "бінарний сервер", інакше визначається як:

    Утиліти, що використовуються для адміністрування системи (та інших кореневих команд)

  • /usr призначений для передачі даних, доступних лише для читання, і він повинен бути доступним для доступу між різними хостами, сумісними з FHS (якщо у вас багато машин у вашій мережі, і вони все тієї ж архітектури, ви повинні мати змогу поділитися єдиною папкою / usr з кожною машиною в мережі)

  • /usr/local призначений для використання системним адміністратором при локальній установці програмного забезпечення (тобто для додатків, встановлених лише на цій машині, а не на кожній машині в мережі).

Збираючи їх разом:

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

Однак є ще одне використання для / usr / local. Більшість речей, які ви встановлюєте через диспетчер пакунків вашого дистрибутива, буде розміщено під / usr; багато людей замість цього кладуть речі, які вони склали вручну, під / usr / local. Це не дає їм можливості керувати пакетами і дозволяє вам помітити те, що ви встановили з дистрибутива (і не потрібно створювати резервні копії, тому що ви можете знову його захопити) і те, що ви склали вручну; це також дозволяє одночасно запускати різні версії (наприклад, / usr / bin / firefox vs / usr / local / bin / firefox).


Просто , коли ви думали , що все було вирішено, що є одне місце, яке , ймовірно , найближчий еквівалент c:\Program Files- /opt:

/opt зарезервовано для встановлення додаткових програмних пакетів програм. "

/optймовірно, найближчий еквівалент c:\program files, в тому , що це єдине місце , можна було очікувати , щоб знайти додаток з усіма його файлами разом в одній папці, а не розкидані по всьому /usr/bin, /varі /etc. Зазвичай його використовують лише дуже великі пакети, але в цьому випадку, враховуючи, що Netbeans хоче мати власну папку, мабуть, має сенс розмістити її під / opt / netbeans


3
цікаво. якби я сконструював Linux, я поставив би мережеві спільні програми в / usr / shared, а потім поставив приватні локальні програми в / usr. таким чином я міг би поділитися / usr / shared також без наслідування, спільного використання / usr.
djangofan

1
Дійсно приємна відповідь. Мені також подобається зауваження щодо того, щоб все не перешкоджало системі управління пакунками.
DaveParillo

1
Однозначно / вибрати для "повних сторонніх пакетів". Більшість встановлень поділять різні бінарні файли, бібліотеки, файли тощо на різні каталоги, але, коли у вас є каталог "все в одному", / opt це полегшує роботу.
Avery Payne

Пара швидких запитань: 1) Якщо / usr повинен бути доступним для всіх машин у мережі, чи це не означає, що всі дочірні каталоги також можуть бути доступними для доступу, таким чином, роблячи / usr / local видимими для інших машин у мережі? 2) Що таке FHS 3) Коли ви говорите про команди, необхідні для монтажу / usr, ви говорите про те, як завантажується ОС, скажімо, відключення? Я прошу вибачення за обстріл запитань через 7 років, але я новачок у Linux, і у мене було те саме запитання, побачивши, що інструкції по установці говорять, куди потрібно класти речі, але не ЧОМУ їх туди поставити. +1 btw
Ungeheuer

5

Дійсно, це зводиться до особистих переваг. Я поясню моєму, чого воно варте.

/ usr, / usr / bin зазвичай є місцями для програмного забезпечення, встановленого системою, що встановлюється. Коли я встановлюю речі самостійно, я встановлюю їх в одному з кількох місць:

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

Чому я розрізняю №2 та №3? Не маю ідеї, це лише звичка, яку я розвинув з часом. Виходить, що / opt зазвичай перетворюється на глибоке дерево файлів, але встановлено лише 2 або 3 фактичних "речі". На даний момент у мене встановлені лампа та ноти лотоса в opt, 2 довідниках, у яких кожен має досить великі дерева. У / usr / local / bin я маю 20 або 30 записів, але жодного підкаталога.

Я не встановлюю речі в / usr / bin або / usr / sbin, тому що мені подобається зберігати речі, які я додаю вручну (а не частину простої установки зі стандартного сховища).


1

Хоча стандарт ієрархії файлової системи дає певні вказівки. Я виявив, що більшість дистрибутивів люблять встановлювати пакети в /usr/share.

Через це я прийняв практику встановлення будь-якого додатку, не встановленого через менеджер пакунків (rpm / apt-get / emerge) в /usr/local. Це дозволяє мені тримати додатки та бібліотеки, якими не керує управління пакетом, окремо від тих, що є.

Це техніка, яка допомогла мені керувати моєю системою як в Fedora Core, так і в Gentoo.


0

Я б подумав, що місце розташування за замовчуванням є /bin, це майже все, що встановлюється за замовчуванням, якщо використовується apt-get або подібне ...

... Однак, якщо мова йде про більш сучасні програми (або програми без інсталятора), які мають багато додаткових файлів, я люблю розміщувати їх у своєму каталозі /bin.


3
Яка різниця між / bin, / usr / bin та / sbin? / bin має найбільш сенс, оскільки це для файлів BINary.
Томас Оуенс

0

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


0

Погоджуючись з відповіддю Джеймса Поллі, але насправді каталог за замовчуванням має багато сенсу, якщо вам не потрібно ділитися додатком між кількома обліковими записами. Мені, наприклад, потрібно було встановити Eclipse 3.0 (застарілий) для того, щоб Flex працював під Linux, і я помістив його в $ HOME / eclipse3.


0

Мені подобається використовувати / додатки для більшості додатків, які я встановлюю на декількох серверах. Я зберігаю копію папки в / install / apps на моєму сервері nfs. Коли я створюю будь-який новий сервер Linux, я монтую папку встановлення та копіює / додаю, і на новому сервері у мене є багато різних загальних програм. Я видаляю ті записи, які мені не потрібні для цього нового сервера, і я закінчив. Ну, можливо, мені потрібно запустити сценарій або три для встановлення змінних оточуючих середовищ або операторів шляху, але це майже все, що потрібно для налаштування багатьох нових серверів.

Я родом з Windows та .net фону. Однією з обіцянок .net було те, що більшість додатків можна встановити за допомогою Windows xcopy. Я шукаю те саме в Linux. Якщо це можливо, я вибираю тарбол над RPM або yum і т. Д., Щоб я міг розгорнутись до / додатків за допомогою cp -r і додати додаток до свого сервера nfs для майбутніх розгортань.


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