Введение

Управление пакетами на основе BSD. Коллекции портов (или деревья портов, или просто порты) — это наборы make-файлов и патчей, предоставляемые BSD-подобными операционными системами FreeBSD, NetBSD и OpenBSD, как простой способ установки программного обеспечения или создания бинарных пакетов. Обычно они служат основой системы управления пакетами, где порты отвечают за создание пакетов, а дополнительные инструменты — за удаление, обновление и другие операции. Помимо BSD, аналогичную инфраструктуру реализовали несколько дистрибутивов Linux, включая Portage (Gentoo), Arch Build System (ABS) (Arch Linux), Ports (CRUX) и Templates (Void Linux). Главное преимущество системы портов по сравнению с моделью распространения бинарных файлов заключается в возможности настройки и оптимизации установки в соответствии с доступными ресурсами. Например, системный администратор может легко установить 32-битную версию пакета, если 64-битная версия недоступна или не оптимизирована для данного оборудования. Однако основным недостатком является время компиляции, которое может быть значительным. Например, полная установка системы FreeBSD с использованием портов может занять несколько дней, в зависимости от аппаратного обеспечения.

Порты FreeBSD

Джордан Хаббард добавил свои макросы для создания портов в репозиторий CVS FreeBSD 21 августа 1994 года. Его набор файлов Makefile для установки пакетов был добавлен годом ранее (26 августа 1993 года). Первоначально основная структура портов поддерживалась Хаббардом совместно с Сатоси Асами на протяжении нескольких лет. Позже для решения этой задачи была создана команда управления портами.

ПКГСРК NetBSD

Коллекция портов pkgsrc NetBSD примечательна своей переносимостью и возможностью использования на ряде операционных систем, помимо самой NetBSD, включая другие BSD, SmartOS/illumos, macOS, MINIX 3, Linux и другие Unix-подобные системы. pkgsrc был создан в августе 1997 года на основе существующей системы портов FreeBSD. Система придерживается квартального графика выпуска и по состоянию на октябрь 2018 года содержит более 22 000 пакетов. С выпуском версии 1.4, DragonFly BSD объявила о принятии pkgsrc в качестве официальной системы управления пакетами. Однако, DragonFly BSD разработала собственную реализацию портов под названием dports с выпуском 3.4 и полностью перешла на неё с версией 3.6. Разработка ведётся с использованием git.