Каково различие между / и т.д. и/usr/local/etc

Попробуйте эту версию:

 rm -r test/*
24
23.06.2011, 13:07
4 ответа

/usr/local обычно для приложений, созданных из источника. т.е. Я устанавливаю большинство своих пакетов с помощью чего-то как apt, но если бы я загружаю более новую версию чего-то или часть программного обеспечения не часть моего распределения, я создал бы его из источника и поместил бы все в '/usr/local' иерархия.

Это допускает разделение от остальной части распределения.

При разработке части программного обеспечения для других необходимо разработать его так, чтобы оно могло быть установлено где угодно, люди хотят, но оно должно принять значение по умолчанию к указанным системным каталогам регулярного FHS, когда они указывают префикс, чтобы быть /usr (/etc, /usr/bin, и т.д.)

т.е. /usr/local для Вашего персонального использования, это не должно быть единственное место для установки программного обеспечения.

Имейте хорошее чтение FHS и используйте стандартные инструменты Linux, чтобы позволить Вашему источнику быть созданным и установленным где угодно так, чтобы разработчики пакета для различных дистрибутивов могли настроить их как требуется для их распределения, и пользователи могут поместить его в /usr/local если они требуют или обычные системные каталоги, если они желают.

24
27.01.2020, 19:41
  • 1
    Да, я полагаю, что настройка разрешения хороша, но я задавался вопросом если /usr/local/etc является стандартным для файлов конфигурации для тех видов программ. –  beatgammit 23.06.2011, 08:12
  • 2
    /usr/local/etc - что-то, что я мог бы выбрать, если бы я создал Вашего демона из источника, но / и т.д. является местом, которое кто-то выбрал бы, если бы они упаковали Вашего демона с debian или Ubuntu. использование –  EightBitTony 23.06.2011, 08:15
  • 3
    На самом деле стандарты GNU призывают, чтобы пакет принял значение по умолчанию к локальному пути, так как люди, создающие его из источника обычно, не указывают где. Дистрибутивы изменят его на не локальный путь, когда они упакуют/создадут его. –  psusi 23.06.2011, 17:51
  • 4
    @psusi-, я удостоверюсь, что сделал это значением по умолчанию. Возможно, я обнаружу, когда мой делать установку будет выполнен как пользователь root или обычный пользователь. Если корень, я приму значение по умолчанию к/usr/local, если пользователь, к пользовательскому корневому каталогу. Я также добавлю параметры конфигурации. –  beatgammit 23.06.2011, 19:42
  • 5
    @eightbittony-Есть ли какие-либо другие платформы, которые имеют различные конвенции? Я уже делаю различные сценарии запуска для различных платформ (выскочка, systemd, init). –  beatgammit 23.06.2011, 19:44

Очень короткий ответ

/ и т.д. используется Вашей ОС для ее конфигурационных файлов

/usr/local/etc может использоваться для Ваших файлов конфигурации Вами и Вашего addtionally установленного программного обеспечения

7
27.01.2020, 19:41

/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) и значение по умолчанию во время выполнения (с установкой в конфигурационном файле, возможно с параметром командной строки или переменной среды).

4
27.01.2020, 19:41
  • 1
    Есть ли причина почему /usr/local/etc не используется очень часто? Мне нравится идея сохранить файлы конфигурации на том же уровне файловой системы как двоичный файл. –  beatgammit 23.06.2011, 19:45
  • 2
    @tjameson, который я не знаю, существует ли широко распространенная причина. BSD делает это тот путь. Как администратор, мне нравится этот все конфигурационные файлы (которого нужно сохранить и управлять изменением, в отличие от материала в bin и lib и так далее, который может быть переустановлен), живой в том же месте. –  Gilles 'SO- stop being evil' 23.06.2011, 23:27

Как пользователь Дуги, я избежал бы/usr/local в целом и использования просто / и т.д. для конфигурации. При установке из источника я записал бы маленький файл PKGBUILD, в то время как я в нем и возможно загружаю его на Пользовательский репозиторий дуги (AUR), и для других и для меня на другом компьютере в будущем. При оценке количеством пакетов в АУРЕ и скорости, с которой они создаются, я не являюсь одним в размышлении этого пути. Это увеличивает возможности для всех, что пакет будет доступен вместо того, чтобы иметь необходимость установить его из источника и способности избежать устаревших местоположений как/usr/local.

Debian также, кажется, нравится идея создать пакет источника вместо того, чтобы установить что-либо на/usr/local, следовательно утилиты как checkinstall.

Создание пакета источника, который Вы хотите установить, было бы хорошим способом отслеживать то, где файлы и удостоверяются не, некоторые из них несовместимо перезаписываются другим пакетом, или другой "делает установку". Удаление с "делает удаление", не хорошее решение. Информацией, о которой установлена версия, является другая вещь, которую современные диспетчеры пакетов способны отслеживать.

Я просто предшествовал бы/usr/local полностью. Это не хорошее место для помещения чего-либо, не для установки пакетов (каталоги в масштабе всей системы более подходят), а не для пользователей.

1
27.01.2020, 19:41

Теги

Похожие вопросы