Коллекции портов (или деревья портов , или просто порты ) — это наборы make-файлов и патчей , предоставляемые операционными системами на базе BSD , FreeBSD , NetBSD и OpenBSD , в качестве простого метода установки программного обеспечения или создания бинарных пакетов. Обычно они являются основой системы управления пакетами , в которой порты управляют созданием пакетов, а дополнительные инструменты управляют удалением, обновлением и другими задачами пакетов. В дополнение к BSD, несколько дистрибутивов Linux реализовали подобную инфраструктуру , включая Portage Gentoo , Arch Build System (ABS) Arch , порты CRUX и шаблоны Void Linux .
Основное преимущество системы портов по сравнению с бинарной моделью распространения заключается в том, что установку можно настроить и оптимизировать в соответствии с доступными ресурсами. Например, системный администратор может легко установить 32-разрядную версию пакета, если 64-разрядная версия недоступна или не оптимизирована для этого компьютера. И наоборот, основным недостатком является время компиляции, которое может быть значительным. Например, полная установка системы FreeBSD с использованием портов может занять несколько дней, в зависимости от оборудования.
Джордан Хаббард передал свои макросы make порта в репозиторий FreeBSD CVS 21 августа 1994 года. [1] Его Makefile пакета установки пакета был передан годом ранее (26 августа 1993 года). [2] Структура основных портов сначала поддерживалась Хаббардом вместе с Сатоши Асами в течение нескольких лет. Позже для решения этой задачи была сформирована Группа управления портами.
Коллекция портов pkgsrc NetBSD отличается тем, что она призвана быть переносимой и может использоваться в ряде операционных систем, помимо самой NetBSD, включая другие BSD, SmartOS / illumos , macOS , [3] MINIX 3 , Linux [4] и другие. Unix-подобные . pkgsrc был создан в августе 1997 года на основе существующей системы портов FreeBSD. Он соответствует ежеквартальному графику выпуска и по состоянию на октябрь 2018 года содержит более 22 000 пакетов. В выпуске 1.4 DragonFly BSD объявила, что будет использовать pkgsrc в качестве официальной системы управления пакетами. [5] Однако DragonFly BSD создала собственную реализацию портов под названием dports в версии 3.4 [6] и полностью перешла на нее в версии 3.6. Разработка ведется через их git. [7]
В отличие от портов FreeBSD , на которых она изначально была основана, система портов OpenBSD задумана как источник, используемый для создания конечного продукта, пакетов : установка порта сначала создает пакет, а затем устанавливает его. Порты состоят из make-файла, текстовых файлов с описаниями и сообщениями об установке, любых патчей, необходимых для настройки программы для работы на OpenBSD, и упаковочного списка со списком файлов, которые будут включены в пакеты. Дерево портов использует набор стандартных make-файлов, некоторые из которых используются совместно с деревом исходного кода , чтобы обеспечить основную часть его функциональности; эта общая инфраструктура включает в себя множество служебных функций для разработчиков портов и означает, что порты часто можно создавать очень просто.
В конце октября 2007 года разработчик OpenBSD Николай Штурм объявил, что стабильное дерево портов следует считать неподдерживаемым из-за нехватки ресурсов. Это фактически вынуждало пользователей запускать -currentports/basetree, чтобы не отставать от обновлений безопасности. В 2009 году было решено возродить дерево портов -stable под руководством Роберта Надя и Джаспера Лиевиссе Адриансе. [8]
Существует три неофициальных веб-сайта со списком портов и пакетов OpenBSD: