Коллекция портов FreeBSD — это система управления пакетами для операционной системы FreeBSD . Порты в коллекции различаются в зависимости от предоставленного программного обеспечения. В феврале 2020 года было доступно 38 487 портов [1] , а в сентябре 2024 года — 36 504. [2] Она также была принята NetBSD в качестве основы для своей системы pkgsrc .
Коллекция портов использует Makefiles, организованные в иерархию каталогов , так что программное обеспечение может быть собрано , установлено и удалено с помощью команды make . При установке приложения требуется очень мало (если вообще требуется) вмешательства пользователя после выдачи начальной команды, такой как make install или make install clean в каталоге портов нужного приложения . В большинстве случаев программное обеспечение автоматически загружается из Интернета , при необходимости исправляется и настраивается , затем компилируется , устанавливается и регистрируется в базе данных пакетов. Если новый порт имеет необходимые зависимости от других приложений или библиотек, они устанавливаются заранее автоматически.
Большинство портов уже настроены с параметрами по умолчанию , которые считаются подходящими для большинства пользователей. Однако эти параметры конфигурации (называемые ручками ) иногда можно изменить перед установкой с помощью команды make config , которая открывает текстовый интерфейс, позволяющий пользователю выбирать нужные параметры.
Исторически каждый порт (или программный пакет) поддерживался отдельным сопровождающим порта , который отвечал за обеспечение актуальности порта и предоставление общей поддержки. Сегодня многие порты поддерживаются специальными целевыми группами или подпроектами, каждый из которых имеет выделенный список рассылки (например, [email protected], [email protected] и т. д.), в то время как неподдерживаемые порты назначаются в общую группу [email protected]. В общем, любой может стать сопровождающим порта, предоставив свое любимое программное обеспечение в коллекцию. Можно также выбрать поддержку существующего порта без активного сопровождающего. [3]
Предварительно скомпилированные (двоичные) порты называются пакетами . Пакет может быть создан из соответствующего порта с помощью команды make package ; предварительно собранные пакеты также доступны для загрузки из репозиториев пакетов, размещенных на FreeBSD. Пользователь может установить пакет, передав имя пакета команде pkg install . Это загружает соответствующий пакет для установленной версии релиза FreeBSD , затем устанавливает приложение, включая любые программные зависимости, которые могут у него быть. По умолчанию пакеты загружаются из основного репозитория пакетов FreeBSD (pkg.freebsd.org), но если возникнут какие-либо проблемы после обновления пакетов, предыдущая версия пакетов не может быть установлена, поскольку репозиторий отклоняет индексы подпапок. В этом случае пользователь должен обновить версию ОС до последней версии и установить последние пакеты.
FreeBSD поддерживает ферму сборки, называемую кластером pointyhat , в которой собираются все пакеты для всех поддерживаемых архитектур и основных релизов . Журналы сборки и известные ошибки для всех портов, встроенных в пакеты через кластер pointyhat, доступны в базе данных [4] , а еженедельные журналы сборки также доступны через архивы списков рассылки. [5]
Эти предварительно скомпилированные пакеты разделены на категории по архитектурам, для которых они доступны. Пакеты далее разделены на несколько каталогов "релиза", по одному для каждого текущего производственного релиза, собранного из коллекции портов и поставляемого с релизом. Эти каталоги производственных релизов никогда не обновляются.
Также есть стабильные и текущие каталоги для нескольких основных ветвей релиза. Они обновляются более или менее еженедельно. В большинстве случаев пакет, созданный для более старой версии FreeBSD, может быть установлен и использован на более новой системе без проблем, поскольку обратная бинарная совместимость между основными релизами включена по умолчанию.
Система упаковки бинарных пакетов [6], называемая [7pkg
] , заменила систему управления пакетами в FreeBSD 10.
Джордан Хаббард зафиксировал свои макросы портирования в репозитории FreeBSD CVS 21 августа 1994 года. [8] Его установочный пакет Makefile был зафиксирован годом ранее (26 августа 1993 года). [9] Основная структура портов сначала поддерживалась Хаббардом вместе с Сатоши Асами в течение нескольких лет. Позднее была сформирована команда управления портами для решения этой задачи.
Pkgsrc NetBSD и коллекция портов OpenBSD берут свое начало во FreeBSD.
С момента своего выпуска 3.6 проект DragonFly BSD использует порты FreeBSD в качестве основы для собственной коллекции портов DPorts . Джон Марино из проекта DragonFly BSD создал репозиторий DeltaPorts — коллекцию патчей и файлов, которые накладываются и изменяют порты FreeBSD, чтобы генерировать DPorts. [10] [11]
{{cite web}}
: CS1 maint: unfit URL (link)