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

Я получаю ту же ошибку с GNU netcat 0.7.1 . Флаг поддерживается версией BSD nc .

6
26.12.2016, 06:18
3 ответа

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

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

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

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

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

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

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

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

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

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

Интересное примечание

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

Дополнительная литература

8
27.01.2020, 20:22

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

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

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

4
27.01.2020, 20:22

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

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

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

3
27.01.2020, 20:22

Теги

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