Роль каталога / usr / local во FreeBSD

В отличие от Linux, которые я использовал, во FreeBSD каталог /usr/local сильно заполнен обычной установкой, даже без использования каких-либо портов. На самом деле там размещаются не базовые оболочки (Bash и Z-Shell) (в /usr/local/bin ).

В Linux было хорошо иметь пользовательские скрипты или программное обеспечение в /usr/local tree, чтобы они были четко отделены от дистрибутивного программного обеспечения (например, чтобы легко «деактивировать» эти «модификации», взяв /usr/local из $PATH ).

Каковы причины этого? И поскольку я сомневаюсь, что есть способ заставить FreeBSD вести себя как Linux, каковы были бы лучшие методы для установки программного обеспечения и файлов пользовательской сборки, доступных для всех пользователей?

  • Настройка FreeBSD для получения IP-адреса с моего сервера FreeBSD DHCP
  • FreeBSD + Audio от Realtec ALC883 интегрирован в материнскую плату
  • Есть простой способ установить pkg-инструмент невзаимодействующим образом
  • Что такое строка «+++ / tmp / security»?
  • Не удается получить ccache для работы с портами в FreeBSD
  • proftpd не изменяет группу по умолчанию для новых файлов
  • Не удается смонтировать USB на FreeBSD: неверный аргумент
  • Quagga bgp реклама останавливается после перезагрузки
  • 3 Solutions collect form web for “Роль каталога / usr / local во FreeBSD”

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

    И это именно то, что вы получаете на FreeBSD . Корпуса, такие как оболочка Z и оболочка Bourne Again , не являются частью FreeBSD . Они являются сторонними дополнениями. Операционную систему иногда называют сленговым именем «base». В мире BSD вообще, сторонние дополнения на вершине «базы» не живут в /usr . Они живут в /usr/local .

    В мире BSD – и это относится к другим операционным системам BSD, таким как OpenBSD – вы сами запускаете себя в / и /usr , а материал, который не является операционной системой в /usr/local . Если вам нужны только функциональные возможности операционной системы без добавлений, один берет /usr/local из соображений в том, что он делает.

    Небольшой поворот в этом заключается в том, что производные от FreeBSD, такие как TrueOS Server и TrueOS Desktop, скромно считают, что их дополнения поверх FreeBSD не являются частью операционной системы. Таким образом, есть полная загрузка TrueOS из готового материала, который живет в /usr/local с не-операционной системой. Например: здесь вы найдете PCDM, диспетчер отображения TrueOS, живущий.

    И наоборот, /usr/local – это то, где все пользовательские программные средства, которые не являются частью операционной системы.

    Чтобы показать, насколько сильным является это разделение:

    • Сценарии Mewburn rc для материалов без операционной системы идут в /usr/local/etc/rc.d/ и не добавляются в /etc/rc.d/ . Здесь вы найдете /usr/local/etc/rc.d/nginx .
    • Файлы конфигурации без операционной системы входят в /usr/local/etc/ not /etc/ . Здесь вы найдете /usr/local/etc/cups .
    • Существуют различия между /usr/share/man которых содержатся руководства по операционной системе, и /usr/local/man где находятся руководства, не относящиеся к операционной системе.

    Даже сам менеджер пакетов (в настоящее время) не является частью самой операционной системы. Существует менеджер пакетов bootstrap, pkg-static . Это устанавливает pkg , фактический менеджер пакетов, который имеет файлы конфигурации в /usr/local/etc/pkg и сам является надстройкой.

    Концептуальный скачок, который вы должны сделать в мире Linux-дистрибутивов, заключается в том, что вы не получаете операционную систему, созданную путем выбора из mish-mash пакетов, поставляемых «дистрибьютором». Вы получаете полную операционную систему как единое целое (устанавливается установщиком, обновляется с помощью freebsd-update и поддерживается как одна «загрузочная среда» с использованием ZFS), так и все сторонние компоненты, такие как порты и пакеты, отделенные от этого , Если вы сами поставляете сторонние вещи, будь то разработчик или системный администратор, вы также делаете порты и пакеты или просто ставите их прямо в /usr/local .

    С другой стороны, пользовательские ПО, входящие в состав операционной системы, входят в / и /usr где живет операционная система. Система источника и сборки для всей операционной системы поставляется в /usr/src как часть этой самодостаточной системы. Вы делаете локальные изменения там, делитесь ими с другими людьми, используя Subversion (FreeBSD) и git (TrueOS), если хотите, и перестраивайте либо «пользовательскую», либо одну или всю операционную систему (как «оболочка», так и «ядро» ) из этого ,

    Интересная заметка

    Если вы, тем не менее, создаете собственную структуру для своих собственных машин, вы, согласно руководству операционной системы, должны предоставить локальную страницу руководства пользователя, заменяющую операционную систему. ☺

    дальнейшее чтение

    • « Глава 4. Установка приложений: пакеты и порты ». Руководство FreeBSD . 2016. Проект документации FreeBSD.
    • Справочник Портера FreeBSD . 2016. Проект документации FreeBSD.
    • . § 7. Руководство FreeBSD .
    • « TrueOS для пользователей Linux ». Руководство пользователя TrueOS . 2016.
    • https://unix.stackexchange.com/a/332441/5132

    При установке FreeBSD PREFIX по умолчанию установлен в /usr/local . Это используется для файлов, установленных из пакетов (и, конечно, пакеты были построены портами). Поскольку zsh и bash являются пакетами и не находятся в базе, они идут в /usr/local .

    Вы также можете установить собственное программное обеспечение в /usr/local . Просто позаботьтесь и избегайте столкновений.

    Если вам нужен какой-то другой пункт назначения, создайте его и установите все настройки под новым PREFIX . Некоторые люди используют /opt . Если вы хотите обслуживать двоичные файлы в этом PREFIX , вы можете использовать пользовательские классы в login.conf (5) и указать для них запись path чтобы они содержали что-то вроде /opt/bin (также читайте также о cap_mkdb (1) и пользователе спецификация класса входа в passwd (5) ).

    / usr / local (с man-страницы ), дома всех локальных исполняемых файлов, файлов и т. д. То, что они подразумевают под «локальным», заключается в том, что программное обеспечение или системы не являются специфическими для работы ОС, и обычно это указывает что данное программное обеспечение было построено через систему портов или установлено менеджером пакетов. Например, как bash, так и zsh предоставляются дополнительно и должны быть добавлены после простой установки, и поэтому они там живут.

    Наблюдая за строгой иерархией ОС и других программ, автоматизация обновлений ОС и патчей проще в управлении. Таким образом, это не сильно отличается от использования каталога, чтобы отличать настраиваемые скрипты и настройки. Тем не менее, вы можете не заметить, что система портов в FreeBSD намного шире – это то, как вы настраиваете свою BSD-систему, а не просто набор дополнительного программного обеспечения.

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

    Linux и Unix - лучшая ОС в мире.