Чому я повинен перемістити все в / opt?


16

Кожного разу, коли я читаю поради щодо встановлення SDK, IDE, деякого розширення тощо, він говорить, що я повинен розпакувати їх у /optпапці. Навіщо мені це потрібно робити?

Коли я встановлював Ubuntu, я прочитав, що я повинен встановити лише 10-20 ГіБ для /файлової системи та залишку місця, встановленого для /home. Тож я повинен розширити простір для кореневої папки або залишити всі речі у /home? Чи є різниця?


1
У вас тут два питання. Допускається лише одне запитання на одну посаду. Відредагуйте свою публікацію, і якщо хочете, можете залишити ще одне питання щодо розміру чи домашньої папки
Сергій Колодяжний,


Відповіді:


20

По-перше, зрозумійте, що будь-який каталог, який явно не є точкою мовлення для окремого розділу (або підкаталогу такої точки монтажу), зберігається у розділі root ( /). Таким чином, якщо у вас є root ( /) і /home, і немає інших розділів, ваш /optкаталог - це просто каталог у root ( /). Так само і для /tmp, /sbinі нічого іншого. Таким чином, початкове запитання базується на хибній передумові, що вам потрібні окремі розділи для кожної директорії, що веде від root ( /), і тому на нього не можна відповісти безпосередньо.

По-друге, /optвикористовується для стороннього програмного забезпечення, що в контексті Ubuntu означає попередньо складене програмне забезпечення, яке не поширюється через пакети Debian. Інколи ви бачите офіційну програмну документацію, на яку посилається /opt, але доступні пакети Debian, які перекидають ці файли в інше місце. У таких випадках вам слід ігнорувати офіційну документацію або принаймні ігнорувати її посилання на розташування файлів, коли ви використовуєте пакет Debian. Крім того, якщо у вас є вибір використання попередньо складеного пакету через тарбол або пакет Debian, зазвичай краще використовувати пакет Debian. Загалом, використання цього дня /optдосить рідкісне. Якщо ви все ще думаєте, що вам потрібно вставити файли /opt, ви можете назвати програмне забезпечення, оскільки люди тут можуть знати, чи доступний пакет Debian для цього програмного забезпечення.

Нарешті, поєднуючи два попередні пункти, дуже рідко буває, що установки Ubuntu розбиваються /optна окремий розділ, оскільки рідкісний обсяг даних зберігається там. Більшість програмного забезпечення Ubuntu знаходиться в /usrінших місцях. Колись звичайно було розділитись /usrна окремий розділ, але така практика сьогодні досить рідкісна. Якщо вам все-таки потрібно встановити багато програмного забезпечення /opt, то, можливо , створити для нього окремий розділмає сенс - але в багатьох випадках це насправді не буде корисним. Окремі розділи мають сенс, якщо вам потрібно по-різному керувати безпекою, якщо різні функції файлової системи будуть корисними, для обміну даними через декілька установок ОС у конфігурації з кількома завантаженнями та з інших причин. Звичайна установка програмного забезпечення, ймовірно, не виграє окремого розділу; насправді, створення окремого розділу для /optможе призвести до проблем, якщо розмір, спожитий програмним забезпеченням, що зберігається там, змінюється, або якщо ви спочатку неправильно оцінюєте розмір.


1
Повторно "використання / opt досить рідкісне в ці дні" Ви впевнені?
Pacerier

@Pacerier чомусь / opt, схоже, повертається, / usr / local, безумовно, було більш популярним в Ubuntu за кілька років тому. У будь-якому випадку IMHO, / opt та / usr / local є рівнозначними. Дивіться також linuxjournal.com/magazine/pointcounterpoint-opt-vs-usrlocal та tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html "Ці дні" / usr / local "широко вважається хорошим місцем в якому зберігати самостійно складені або сторонні програми. "
Пантера

8

Чи ти?

Справа в тому, що вам цього не потрібно робити. Використання /opt- це умова. Я б рекомендував використовувати його, але це не обов'язково.

З Linux Filesystem Hierarchy: Глава 1. Linux Filesystem Hierarchy :

1.13. / опт

Цей каталог зарезервований для всього програмного забезпечення та додаткових пакетів, які не є частиною встановлення за замовчуванням. Наприклад, тут зазвичай знаходяться пакети StarOffice, Kylix, Netscape Communicator та WordPerfect. Щоб відповідати FSSTND, всі додатки сторонніх розробників повинні бути встановлені в цьому каталозі. Будь-який пакет, який буде встановлений тут, повинен знаходити статичні файли (наприклад, додаткові шрифти, кліпарт, файли баз даних), повинні знаходити його статичні файли в окремому / opt / 'package' або / opt / 'provider' дереві каталогів (подібно до способу у якому Windows встановить нове програмне забезпечення до власного дерева каталогів C: \ Windows \ Progam Files \ "Назва програми"), де "package" - це ім'я, яке описує програмний пакет, а "provider" - зареєстроване ім'я LANANA провайдера.

Хоча більшість дистрибутивів нехтують створенням каталогів / opt / bin, / opt / doc, / opt / include, / opt / info, / opt / lib та / opt / man, вони зарезервовані для використання локальним системним адміністратором. Пакети можуть надавати "передні" файли, призначені для розміщення (за допомогою з'єднання або копіювання) цих зарезервованих каталогів системним адміністратором, але повинні нормально функціонувати за відсутності цих зарезервованих каталогів. Програми, на які користувачі повинні викликати, знаходяться в каталозі / opt / 'package' / bin. Якщо пакет включає сторінки керівництва UNIX, вони знаходяться в / opt / 'package' / man і повинна використовуватися та ж підструктура, що і / usr / share / man. Файли пакунків, що змінюються, повинні бути встановлені в / var / opt. Файли конфігурації для хоста встановлюються в / etc / opt.

Ні за яких обставин не існують інші файли пакетів за межами ієрархій / opt, / var / opt та / etc / opt, за винятком тих файлів пакетів, які повинні нормально функціонувати в дереві файлової системи. Наприклад, файли блокування пристрою в / var / lock та пристрої в / dev. Розподільники можуть встановлювати програмне забезпечення в / opt, але не повинні змінювати або видаляти програмне забезпечення, встановлене місцевим системним адміністратором, без згоди місцевого системного адміністратора.

Використання / вибору додаткового програмного забезпечення є усталеною практикою у спільноті UNIX. Бінарний інтерфейс застосунку System V [AT&T 1990], заснований на визначенні інтерфейсу System V (Третя редакція) та Стандарт бінарної сумісності Intel v.

Як правило, всі дані, необхідні для підтримки пакету в системі, повинні бути присутніми в / opt / 'package', включаючи файли, призначені для копіювання в / etc / opt / 'package' та / var / opt / 'package', а також зарезервовані каталоги в / opt. Незначні обмеження щодо дистрибутивів, які використовують / opt, необхідні, оскільки можливі конфлікти між встановленим дистрибутивом та локально встановленим програмним забезпеченням, особливо у випадку фіксованих імен шляхів, знайдених у деяких бінарних програмах.

Структура каталогів нижче / opt / 'провайдер' залишається за пакувальником програмного забезпечення, хоча рекомендується, щоб пакети були встановлені в / opt / 'provider' / 'package' та дотримувалися аналогічної структури інструкціям щодо / opt / пакет. Вагомою причиною відхилення від цієї структури є пакети підтримки, у яких файли можуть бути встановлені в / opt / 'provider' / lib або / opt / 'provider' / bin.


Це дивно, тому що більшість людей рекомендують розділити невеликий простір для кореневого каталогу, і я подумав, що це не сильно зміниться. Видається, що мені потрібно нагадати цим порадам дотримуватися конвенцій?
Молитовний

2
@Praytic Не дуже. У минулому /optчасто був окремий привід. Він використовувався б для встановлення власного програмного забезпечення, яке часто вимагало величезних потреб на дисковому просторі через поєднання всіх необхідних бібліотек та інших ресурсів. У сучасний час накопичувачі настільки великі, що доцільно і простіше просто використовувати один корінь на одному диску.
bain

4

/optвикористовується для (іноді власницьких) зовнішніх програм, які не вважаються частиною дистрибутива Linux. У цих додатках можуть бути жорстко закодовані шляхи, і вони працюватимуть правильно лише тоді, коли їх встановлено /opt- але якщо немає жорстко закодованих шляхів, ви можете встановити їх у будь-який шлях. Програма, яка встановлена ​​в /opt, повинна бути самостійною.

Основна причина використання /opt- надання загального стандартного шляху, де можна встановити зовнішнє програмне забезпечення, не втручаючись у решту встановленої системи. /optне відображається у стандартних контурах компілятора чи лінкера ( gcc -print-search-dirsабо /etc/ld.so.confін.), тому встановлені там заголовки та бібліотеки дещо ізольовані від основної системи і не повинні перешкоджати вже встановленим програмам.

Використання /optвизначено стандартом ієрархії файлової системи : / opt , який зазначає, що /optспочатку походить від Unix.

/ opt: Додаткові пакети прикладних програм

Призначення

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

Пакет, який потрібно встановити в / opt, повинен знаходити статичні файли в окремому дереві каталогів / opt / <package> або / opt / <provider>, де <package> - ім'я, яке описує пакет програмного забезпечення, а <provider> - це Зареєстроване ім’я LANANA постачальника.

Вимоги

Каталоги / opt / bin, / opt / doc, / opt / include, / opt / info, / opt / lib та / opt / man зарезервовані для використання місцевим системним адміністратором. Пакети можуть надавати "передні" файли, призначені для розміщення (за допомогою з'єднання або копіювання) цих зарезервованих каталогів місцевим системним адміністратором, але повинні нормально функціонувати за відсутності цих зарезервованих каталогів.

Програми, на які користувачі повинні викликати, повинні знаходитись у каталозі / opt / <package> / bin або під ієрархією / opt / <provider>. Якщо пакет включає сторінки керівництва UNIX, вони повинні бути розташовані в / opt / <package> / share / man або під ієрархією / opt / <provider>, і повинна бути використана та сама підструктура, що і / usr / share / man.

Файли пакунків, що змінюються (зміна нормальної роботи), повинні бути встановлені в / var / opt. Додаткову інформацію див. У розділі / var / opt.

Файли конфігурації для хоста повинні бути встановлені в / etc / opt. Додаткову інформацію див. У розділі / тощо.

Жодні інші файли пакунків не можуть існувати за межами ієрархій / opt, / var / opt та / etc / opt, за винятком тих файлів пакунків, які повинні функціонувати в певних місцях дерева дерев файлової системи, щоб нормально функціонувати. Наприклад, файли блокування пристрою повинні бути розміщені в / var / lock, а пристрої - у / dev.

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

Обґрунтування

Використання / вибору додаткового програмного забезпечення є усталеною практикою у спільноті UNIX. Бінарний інтерфейс застосунку System V [AT&T 1990], заснований на визначенні інтерфейсу System V (Третя редакція), передбачає структуру / оптимізацію, дуже подібну до визначеної тут.

Стандарт бінарної сумісності Intel v. 2 (iBCS2) також забезпечує подібну структуру для / opt.

Як правило, всі дані, необхідні для підтримки пакету в системі, повинні бути присутніми в / opt / <package>, включаючи файли, призначені для копіювання в / etc / opt / <package> та / var / opt / <package>, а також зарезервовані каталоги в / opt.

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

Структура каталогів нижче / opt / <provider> залишається за пакувальником програмного забезпечення, хоча рекомендується, щоб пакунки були встановлені в / opt / <provider> / <package> та дотримувалися аналогічної структури інструкціям щодо / opt / пакет. Вагомою причиною відхилення від цієї структури є пакети підтримки, у яких файли можуть бути встановлені в / opt / <provider> / lib або / opt / <provider> / bin.


3

У цьому немає нічого священного /opt, просто звичайна практика розміщувати попередньо складене програмне забезпечення, яке має бути доступним для всіх користувачів системи в цьому каталозі. Якщо ви є єдиним користувачем системи, немає нічого поганого в тому, щоб витягнути його в домашній каталог. І навіть якщо в системі є декілька користувачів, яким потрібен доступ до цього програмного забезпечення, але ви хочете використовувати простір на своєму /homeрозділі, немає нічого поганого у створенні загальнодоступного /home/softwarenameкаталогу та витягуванні вашого програмного забезпечення там (єдиний застереження - якщо це трапиться щоб мати ім’я користувача softwarename, ви не зможете ним користуватися в домашній директорії користувача).


2

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

Встановлення /optабо /usr/localзберігання речей у чистоті та безпечності.

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

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

Якщо так не вийшло, хто знає, що може зламати або відкрити захисну дірку, якщо програма з ім'ям, cpяка робить щось інше, запускається, коли ви думаєте, що ви просто намагаєтесь скопіювати деякі файли.

Якщо щось подібне трапляється, може пройти деякий час, перш ніж хтось подумає запустити таку команду, як type cp(що може бути навіть недостатньо, щоб показати, що щось не так), щоб з'ясувати, що те, що виконується, - це не те, що ти думаєш. До цього моменту ви застрягли у "Все саме так, як воно повинно бути осторонь дрібних деталей, що це не працює!"

Це в основному допомагає утримувати несподівані речі, а також уникає ситуацій, коли оновлення системи можуть видалити або замінити деякі або всі ваші "спеціальні" встановлені пакети. Або, навпаки, деякі "спеціальні" програми можуть перезаписати програми, що постачаються системою, на які можуть покладатися багато інших програм або сценаріїв.

З адміністративної точки зору змішування "системних" та "необов'язкових" програм / файлів в одних і тих же місцях переводить вашу систему в "невизначений" або принаймні "неоднозначний" стан.

Якщо у вас є проблема з вашою системою або програмою і вам потрібна допомога, одне з перших запитань, яке вам задають, - "Що ви змінили?" і "Чи можемо ми тимчасово відключити деякі з цих змін, щоб ми знали, що ми дивимося на справжню проблему, а не лише на симптом чогось іншого".

За допомогою окремих локацій ці зміни можна швидко визначити, і все, що вам потрібно зробити (принаймні для самих програм), тимчасово видалити їх каталоги з шляху.

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