Стандарт ієрархії файлової системи - куди розмістити вихідні функції?


9

У мене є кілька bash-скриптів, які виконують системні перевірки. Ці сценарії вихідні параметри конфігурації з файлу / etc / healthchecks / config.

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

На підставі стандарту ієрархії файлової системи де я повинен розмістити файл спільних функцій? Це не конфігурація, тому не здається, що вона належить в / etc, але вона також не виконується, тому / usr / bin здається невірною. Можливо / usr / lib?

Відповіді:


7

Ви повинні розмістити свої healthchecksвиконувані файли в / usr / local / bin або в / opt / bin. Якщо ви бачите, що ваша папка / opt порожня, це означає, що ваша дистрибутива Linux не використовує її. Отже, підходящим місцем було б / usr / local.

/ usr / local та / opt - це місце, де має бути розміщений кожен "ручний" пакет / програма. / usr призначений для пакунків, якими керують менеджери пакунків (тобто dpkg). / opt - "стандартне місце" для ручних пакетів відповідно до FHS, але debian distros використовує / usr / local.

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

Точне місце для ваших спільних функцій - / usr / local / share (/ usr / share - це спільні файли автоматичних пакетів). Кожен файл, призначений лише для читання та незалежний від архітектури, належить / usr / share або / usr / local / share (якщо вони є власними "автоматичними" або "ручними" пакетами).

/ usr / lib призначений для динамічних та статичних бінарних бібліотек (.so або .a), а не для "інтерпретованих" бібліотек / функцій.

Зазвичай перекладачі мають різні підпапки в / etc / share / для кожної версії, а всередині кожної папки версій, різні папки для сценаріїв, локалі, тести, зразки тощо.

Якщо якийсь день ви створюєте офіційний сховище для свого пакету healthchecks, ви можете перемістити вміст / usr / local / healthchecks до / usr / healthchecks та / etc / healthchecks.


2
Я пішов далі і видалив свою відповідь, оскільки 1) ваша тема досить добре висвітлює тему, і 2) libexecтехнічно ще не є частиною FHS. Він присутній у проекті 3.0 та Огляді Redhat FHS , але технічно ще не є частиною FHS. (використовуйте його, якщо хочете, в основному)
Ендрю Б

1

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

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