Який Linux еквівалент програмним файлам C: \?


64

Я розумію, що в Windows, а також в Linux і Unix програмне | програмне забезпечення | програмне забезпечення може бути встановлене в будь-якому каталозі. Також якщо пакети встановлені за допомогою системи упаковки дистрибутива, вони розмістять файли у правильному місці.

Але часом інсталяція програмного забезпечення вимагає шляху розміщення файлів. У випадку дистрибутива Linux, де це місце за замовчуванням ( C:\Program Filesабо його C:\progra~1еквівалент)? Чи відрізняється це для різних дистрибутивів? Якщо так, то де це було б для RHEL, Suseа Ubuntu?

Відповіді:


60

Проект документації Linux містить опис ієрархії файлової системи Linux, де вони пояснюють різні папки та їх (частково історичне) значення.

Як уже вказував ксенотеррацид /binі /optє стандартними каталогами, які можна порівняти з "Файлами програми" в Windows.

/binмістить кілька корисних команд, які корисні як адміністратору системи, так і непривілейованим користувачам. Зазвичай він містить оболонки , як bash, cshі т.д .... і часто використовувані команди , такі як cp, mv, rm, cat, ls.

( цитується з TLDP )

/optзарезервовано для всього програмного забезпечення та додаткових пакетів, які не є частиною встановлення за замовчуванням. Наприклад, тут зазвичай знаходяться пакети StarOffice, Kylix, Netscape Communicator і WordPerfect.

( цитується з TLDP )


9
Чи / opt не використовується лише для пакетів, які не містять репост? Папки додатків для inkscape, gimp, ritbox і т.д. знаходяться в / usr / share. Хіба це не було б рівнозначним?
c76c3r8c42b347r8

5
Див. Linuxfoundation.org/en/FHS для отримання більш нової інформації про ієрархію файлової системи (FHS). (Примітка. Сайт наразі не працює, але незабаром його слід створити назад).
jw013

@Toxicbits: Принаймні, у Gentoo в / opt є бінарні пакети - особливо ті, які неможливо встановити / usr через нестандартну ієрархію файлової системи.
Maciej Piechotka

TLDP здається чудовим! Ну, на сторонній ноті; Перший раз, коли я побачив TLDP, я подумав: "Занадто довго не пік? Що?"
Еге Оскан

3
Це неправильно. / bin містить лише виконувані програми. Каталог програмних файлів Windows містить підкаталог для кожної встановленої програми, який містить усі виконувані файли, dll, файли даних та все інше, що потрібно / постачається разом із програмою.
psusi

45

Прямого еквівалента немає. Структура каталогів сильно відрізняється. У Windows у вас є єдиний каталог для кожного встановленого пакета / програмного забезпечення, який містить усі файли, пов'язані (наприклад C:\Program Files\MyProgram). У Linux кожне програмне забезпечення «розпорошується» у багатьох каталогах відповідно до типу файлу та якогось іншого правила.

Як приклад, ми можемо вивчити, де встановлені різні файли, пов’язані з xscreensaverпрограмою:

/etc/pam.d/xscreensaver
/etc/xscreensaver
/etc/xscreensaver/README
/usr/bin/xscreensaver
/usr/bin/xscreensaver-command
/usr/bin/xscreensaver-demo
/usr/bin/xscreensaver-gl-helper
/usr/share/X11/app-defaults/XScreenSaver
/usr/share/applications/xscreensaver-properties.desktop
/usr/share/doc/packages/xscreensaver
/usr/share/doc/packages/xscreensaver/README
/usr/share/locale/ca/LC_MESSAGES/xscreensaver.mo
/usr/share/locale/da/LC_MESSAGES/xscreensaver.mo
/usr/share/locale/de/LC_MESSAGES/xscreensaver.mo
[ ... ]
/usr/share/locale/zh_TW/LC_MESSAGES/xscreensaver.mo
/usr/share/man/man1/xscreensaver-command.1.gz
/usr/share/man/man1/xscreensaver-demo.1.gz
/usr/share/man/man1/xscreensaver.1.gz
/usr/share/man/man6/xscreensaver-gl-helper.6x.gz
/usr/share/pixmaps/xscreensaver.xpm
/usr/share/xscreensaver
/usr/share/xscreensaver/glade
/usr/share/xscreensaver/glade/screensaver-cmndln.png
/usr/share/xscreensaver/glade/screensaver-colorselector.png
[ ... ]

Не хвилюйтеся, як правило , коли установник запитає , куди встановити на правильну відповідь є один з наступних: /, /opt, /usr,/usr/local

Як бачимо, майже всі (1) файли xscreensaverвстановлені /usrзгідно з деяким простим правилом: виконувані файли /usr/bin, сторінки вручну /usr/share/man, документація /usr/share/doc/packages/PROGRAMNAMEтощо.

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

Як просте правило: /повинна містити лише програму, необхідну для завантаження системи (як C:\windows\system32), /usr/localповинна містити програми, необхідні лише на цьому унікальному комп'ютері; /opt(2) всі додаткові програми, що мають нестандартну структуру каталогів та /usrвсе стандартне програмне забезпечення .

У будь-якому випадку існує стандарт, який детально визначає всі ці правила: Стандарт ієрархії файлової системи

(1) файли конфігурації для всієї системи повинні міститись /etc

(2) досить застарілий під Linux


/optє перевагою для програмного забезпечення сторонніх розробників протягом /usr/localдосить тривалого часу.
Стів-о

7
Просто пояснення /usr/shareназивається "поділитися", оскільки воно ділиться між різними архітектурами (документацією, сценаріями, зображеннями), тоді /usr/lib*як для файлів, залежних від архітектури (а не виконуваних файлів /usr/bin).
eudoxos

12

Ususually, /bin, /usr/bin, /usr/local/bin, або /opt/bin. Я думаю , /usr/binі /opt/binближче всього до Program Files, тому що зазвичай вони для несистемний критичних довічних файлів, встановлених системним адміністратором, хоча в відміну від вікон і з них містять програми , встановлені за допомогою менеджера пакетів. Де /usr/local/binпризначене для програмного забезпечення, яке не пакується у дистрибуції /binпризначений для критичних системних двійкових файлів /bin/sh.


чому чотири варіанти? /bin, /usr/bin, /usr/local/binАбо /opt/bin. Немає одного стандартного місця? Причина, про яку я запитую, полягає в тому, що я встановлюю програмне забезпечення на декілька VM, і місце за замовчуванням займає те, що в будь-якому розділі є найбільше місце. Я хочу змінити простір розділів в каталог, куди зазвичай йде програмне забезпечення, і програмне забезпечення не буде розміщене по-різному у всіх VM.
Томас

1
стандарт вказує декілька локацій idk, чому ім'я шляху не вказано, але ось посилання на кешований FHS, який детальніше визначає, що це таке, і насправді багато що залежить від того, що ви встановлюєте. Також RHEL, Suse та Ubuntu відрізняються, тому вони можуть розміщувати те саме в дещо різних місцях. /optнаприклад, зазвичай використовується для власного програмного забезпечення.
ксенотеррацид

Також зазвичай ... зазвичай це всі на одному розділі ... іноді /usr/це окремий розділ.
ксенотерацид

1
Деякі люди (наприклад, проект Hurd) стверджують, що /binта /usr/binдискримінація застаріла; Історично система критичних матеріал буде в /bin, /lib... (безпосередньо в кореневому каталозі), а /usr/usr/bin, /usr/lib...) буде встановлено пізніше (можливо через мережу), не є необхідними для базової функціональності системи.
eudoxos

1
@Thomas, /optне повинен виходити . Деякі люди раніше думали, що було б ідеально мати деякі програми в іншому місці, ніж усі інші додатки. /binзнаходиться на кореневому розділі. Оскільки в якійсь системі місце на кореневому розділі обмежене, неістотні бінарні файли (тобто всі користувацькі програми) були переміщені до /usr/bin.
січня


3

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

Якщо програма не встановлена ​​через менеджер пакунків, файли повинні бути встановлені там, де вони не заважають менеджеру пакунків. Це місце є /usr/local.

Якщо вас запитають шлях встановлення, найпоширенішим вибором буде /usr/local/appname


3

Введіть echo $PATHсвій термінал, щоб побачити шлях (и), до якого буде шукати оболонка, щоб знайти команду. Він проходить перевірку файлу в порядку, в якому він надрукований.


1
Це не відповідає тому, що просила ОП.
Франческо Турко

1

Ну ви не знайдете всі ваші рішення в /binі sbinтому , що вони мають в основному системні команди (тобто команд , використовуваних системою).

/usr/binможна в ідеалі назвати "Program Files"Unix світом. Що стосується /optдуже мало пакетів, які вирішили використовувати це місце для встановлення, те саме стосується пакетів, що використовують /etc/або /varяк локації

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