/usr/local
обычно для приложений, созданных из источника. т.е. Я устанавливаю большинство своих пакетов с помощью чего-то как apt
, но если бы я загружаю более новую версию чего-то или часть программного обеспечения не часть моего распределения, я создал бы его из источника и поместил бы все в '/usr/local' иерархия.
Это допускает разделение от остальной части распределения.
При разработке части программного обеспечения для других необходимо разработать его так, чтобы оно могло быть установлено где угодно, люди хотят, но оно должно принять значение по умолчанию к указанным системным каталогам регулярного FHS, когда они указывают префикс, чтобы быть /usr
(/etc
, /usr/bin
, и т.д.)
т.е. /usr/local
для Вашего персонального использования, это не должно быть единственное место для установки программного обеспечения.
Имейте хорошее чтение FHS и используйте стандартные инструменты Linux, чтобы позволить Вашему источнику быть созданным и установленным где угодно так, чтобы разработчики пакета для различных дистрибутивов могли настроить их как требуется для их распределения, и пользователи могут поместить его в /usr/local
если они требуют или обычные системные каталоги, если они желают.
Очень короткий ответ
/ и т.д. используется Вашей ОС для ее конфигурационных файлов
/usr/local/etc может использоваться для Ваших файлов конфигурации Вами и Вашего addtionally установленного программного обеспечения
/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
не используется очень часто? Мне нравится идея сохранить файлы конфигурации на том же уровне файловой системы как двоичный файл.
– beatgammit
23.06.2011, 19:45
bin
и lib
и так далее, который может быть переустановлен), живой в том же месте.
– Gilles 'SO- stop being evil'
23.06.2011, 23:27
Как пользователь Дуги, я избежал бы/usr/local в целом и использования просто / и т.д. для конфигурации. При установке из источника я записал бы маленький файл PKGBUILD, в то время как я в нем и возможно загружаю его на Пользовательский репозиторий дуги (AUR), и для других и для меня на другом компьютере в будущем. При оценке количеством пакетов в АУРЕ и скорости, с которой они создаются, я не являюсь одним в размышлении этого пути. Это увеличивает возможности для всех, что пакет будет доступен вместо того, чтобы иметь необходимость установить его из источника и способности избежать устаревших местоположений как/usr/local.
Debian также, кажется, нравится идея создать пакет источника вместо того, чтобы установить что-либо на/usr/local, следовательно утилиты как checkinstall.
Создание пакета источника, который Вы хотите установить, было бы хорошим способом отслеживать то, где файлы и удостоверяются не, некоторые из них несовместимо перезаписываются другим пакетом, или другой "делает установку". Удаление с "делает удаление", не хорошее решение. Информацией, о которой установлена версия, является другая вещь, которую современные диспетчеры пакетов способны отслеживать.
Я просто предшествовал бы/usr/local полностью. Это не хорошее место для помещения чего-либо, не для установки пакетов (каталоги в масштабе всей системы более подходят), а не для пользователей.
/usr/local/etc
является стандартным для файлов конфигурации для тех видов программ. – beatgammit 23.06.2011, 08:12