Відмінності між багатьма папками lib в Linux


14

Яка різниця між безліччю ліб в системі Linux? (/ lib, / usr / lib, / var / lib, / usr / share / lib тощо, тощо).

Я знаю, що вона обробляється автоматично синаптично щоразу, коли я встановлюю програму, але у випадку, якщо я хочу бути розробником Linux, я обов'язково повинен знати, куди розміщувати мої додатки в системі.

Відповіді:


10

Зазвичай ваше програмне забезпечення буде встановлено або під /, або / usr, або / usr / local. Це називається «префіксом». /, як правило, зарезервовано для найважливіших програм операційної системи. / usr / зарезервовано для використання менеджерами пакетів. Тому, коли ви пишете програмне забезпечення, найввічливіше налаштувати його так, щоб префікс був / usr / local. Тоді це може бути відмінено, коли хтось пакує його для розповсюдження.

Зверніть увагу, я не кажу спеціально про "lib". Під префіксом є декілька загальних підкаталогів, а lib є лише одним із них. "bin" використовується для виконуваних файлів, "share" для файлів даних, "lib" для спільних бібліотек тощо. Отже, якщо ваша програма є бібліотекою, ви можете встановити її за замовчуванням до / usr / local / lib. Якщо це звичайна програма, ви можете встановити її в / usr / local / bin зі своїми файлами даних у / usr / local / share. Важливим є те, що ви робите це так, щоб префікс був обраний під час компіляції. Деякі можуть вважати за краще встановити / usr, а не / usr / local або навпаки.


Отже, Ваша думка полягає в тому, що місця розташування - це скоріше керівництво, ніж жорстке обмеження?
Андреас Вонг

1
Це настанова, але НЕОБХІДНО дотримуватися цього, і багато програм очікують певних файлів у певних місцях.
Джим Девілл

Точка @james взята: D
Андреас Вонг

8

Існує також стандарт, який описує ієрархію файлової системи linux / unix. Його можна знайти за адресою: http://www.pathname.com/fhs/ . Це призначене в основному для розробників дистрибуції, але я не бачу причин, щоб користувач / розробник не мав про це знати.


0

/ bin та / sbin

  • двійкові файли, що використовуються для адміністрування системи, а також в єдиному користувальницькому режимі. Файли їх бібліотеки знаходяться в / lib.

/ usr / bin та / usr / sbin

  • містять неістотні неістотні бінарні файли, які використовуються всіма користувачами, і двійкові файли, що використовуються для мережевих служб та всіх. Їх бібліотеки розміщуються в / usr / lib.

/ var / lib

  • містять файли, які зберігають інформацію про стан запущених програм або екземпляри програм.

/ usr / share / lib

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