Роль каталога / usr / local во FreeBSD
В отличие от Linux, которые я использовал, во FreeBSD каталог /usr/local
сильно заполнен обычной установкой, даже без использования каких-либо портов. На самом деле там размещаются не базовые оболочки (Bash и Z-Shell) (в /usr/local/bin
).
В Linux было хорошо иметь пользовательские скрипты или программное обеспечение в /usr/local
tree, чтобы они были четко отделены от дистрибутивного программного обеспечения (например, чтобы легко «деактивировать» эти «модификации», взяв /usr/local
из $PATH
).
- Поле имени пользователя изменено на passwd
- Невозможно добавить нового пользователя в группу sudo
- Утилита даты FreeBSD -r меня смущает
- Есть ли какой-либо анализатор журнала PF для FreeBSD
- Как заблокировать исходящие подключения от процесса / пользователя на FreeBSD?
Каковы причины этого? И поскольку я сомневаюсь, что есть способ заставить FreeBSD вести себя как Linux, каковы были бы лучшие методы для установки программного обеспечения и файлов пользовательской сборки, доступных для всех пользователей?
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/
. Если это не так, почему бы не сделать собственный порт ?