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