Я занимаюсь разработкой демона, который должен хранить множество данных приложения, и заметил, что в моей системе (Fedora 15) есть /usr/local/etc
каталог.
Я решил установить свой демон в /usr/local/bin
, и мне нужно место для моих файлов конфигурации.
Я не видел этого в Википедии . Это нестандартное или это стандартное место для программ, установленных /usr/local/bin
для хранения конфигурационных файлов?
Причина в том, что я хочу продать это системным администраторам, и получить что-то подобное неправильно - не очень хорошая точка продажи ...
directory-structure
fhs
beatgammit
источник
источник
/etc/myapp
? Если бы я искал изменения в конфигурации, это было бы первое место, которое я бы посмотрел./usr/local/bin
->/usr/local/etc
), но соглашения выигрывают в этом случае.Ответы:
/usr/local
обычно для приложений, созданных из исходного кода. т.е. я устанавливаю большинство своих пакетов, используя что-то подобноеapt
, но если я загружаю более новую версию чего-либо или часть программного обеспечения, не входящую в мой дистрибутив, я собираю его из исходного кода и помещаю все в иерархию `/ usr / local '.Это позволяет отделить от остальной части распределения.
Если вы разрабатываете какое-то программное обеспечение для других, вы должны спроектировать его так, чтобы оно могло быть установлено в любом месте, где люди хотят, но оно должно по умолчанию использовать стандартные системные директории, определенные FHS , когда они указывают префикс
/usr
((/etc
,/usr/bin
и т. Д.)).т.е.
/usr/local
для вашего личного использования, это не должно быть единственным местом для установки вашего программного обеспечения.Иметь хорошее чтение на FHS , и использовать стандартные инструменты Linux , чтобы ваш источник должен быть построен и установлен в любом месте , так что пакет строителей для различных дистрибутивов можно настроить их в соответствии с требованиями для их распределения, и пользователи могут поместить его в ,
/usr/local
если они желают или обычные системные каталоги, если они хотят.источник
/usr/local/etc
является ли стандарт для конфигурационных файлов для такого рода программ.Очень короткий ответ
/ etc используется вашей ОС для файлов конфигурации
/ usr / local / etc может использоваться вами и вашими дополнительными программами для ваших файлов конфигурации
источник
/usr/local/etc
редко используется в мире Linux. Но решение о том, хранения конфигурационных файлов в/etc
,/usr/local/etc
или в другое место , как правило , производится во время компиляции (и часто могут быть переопределены с помощью опции командной строки или переменной окружения). На самом деле не имеет значения, какое значение по умолчанию используется при компиляции, просто убедитесь, что его легко установить (обычно это опция--sysconfdir
после autoconf). Если ваш демон упакован для дистрибутива, исполняемый файл войдет в систему/usr/sbin
(по умолчанию при сборке из исходного кода/usr/local/sbin
), а конфигурация - в/etc
.Обратите внимание, что
/etc
это не место для «большого количества данных приложения». Это входит в/var
. По умолчанию при построении из источника может быть/var/local/mydaemon
или/var/lib/mydaemon
; опять же, нет строгого соглашения в любом случае по умолчанию при сборке из исходного кода. Должен быть способ изменить как время компиляции по умолчанию (обычно сconfigure --localstatedir
), так и время выполнения по умолчанию (с настройкой в файле конфигурации, возможно с параметром командной строки или переменной среды).источник
/usr/local/etc
не используется очень часто? Мне нравится идея сохранения файлов конфигурации на том же уровне файловой системы, что и двоичный файл.bin
иlib
и так далее , которые можно переустанавливать) живут в том же самом месте.Как пользователь Arch, я бы вообще избегал / usr / local и использую только / etc для конфигурации. При установке из исходного кода, я предпочел бы написать небольшой файл PKGBUILD, пока я там, и, возможно, загрузить его в репозиторий пользователей Arch (AUR), как для других, так и для себя на другом компьютере в будущем. Судя по количеству пакетов в AUR и скорости их создания, я не одинок в своих мыслях. Это увеличивает шансы для всех, что пакет будет доступен, вместо того, чтобы устанавливать его из исходных текстов, и избегать устаревших расположений, таких как / usr / local.
Похоже, что Debian также нравится идея создания пакета исходного кода вместо установки чего-либо в / usr / local, поэтому используются такие утилиты, как checkinstall .
Создание пакета с исходным кодом, который вы хотите установить, было бы хорошим способом отследить, где находятся файлы, и убедиться, что некоторые из них непостоянно не перезаписаны другим пакетом или другой «make install». Удаление с помощью «make uninstall» не является хорошим решением. Информация о том, какая версия установлена, - это еще одна вещь, которую современные менеджеры пакетов умеют отслеживать.
Я бы просто отказался от / usr / local полностью. Это не очень хорошее место для размещения чего-либо, не для установки пакетов (общесистемные каталоги более удобны) и не для пользователей.
источник