Назад | Перейти на главную страницу

Стандарт иерархии файловой системы - Где разместить исходные функции?

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

Наряду с файлом конфигурации у меня есть файл общих функций. Скрипты должны иметь возможность получать этот файл и запускать в нем функции.

В соответствии со Стандартом иерархии файловой системы, где мне разместить файл общих функций? Это не конфигурация, поэтому не похоже, что она принадлежит / etc, но она также не выполняется, поэтому / usr / bin кажется неверным. Может быть, / usr / lib?

Вы должны положить свой healthchecks исполняемые файлы в / usr / local / bin или в / opt / bin. Если вы видите, что ваша папка / opt пуста, значит, ваш дистрибутив Linux ее не использует. Итак, подходящим местом будет / usr / local.

В / usr / local и / opt должны быть размещены все «ручные» пакеты / программы. / usr предназначен для пакетов, управляемых менеджерами пакетов (то есть dpkg). / opt - это "стандартное место" для пакетов вручную в соответствии с FHS, но в дистрибутивах debian вместо этого используется / usr / local.

Файлы конфигурации должны быть размещены в / usr / local / etc, поскольку / 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.

Обычно я стараюсь хранить специфические для сайта вещи вне этих зарезервированных системных областей. Вы можете рассмотреть возможность использования вашей собственной иерархии каталогов верхнего уровня, поскольку при использовании системных областей специальные файлы сайта могут легко потеряться или забыться в процессе развития системы. Другой возможный вариант - / usr / local / etc .....