Коллекция портов FreeBSD (), как и бинарные пакеты () — технология установки программного обеспечения сторонних разработчиков в операционной системе FreeBSD. Порт FreeBSD для любого конкретно взятого приложения является набором файлов, предназначенных для автоматизации процесса компиляции приложения из исходного кода. В настоящее время коллекция портов насчитывает более 32 тыс. приложений самого разного назначения.
Термин port — сокращение от portability, то есть переносимость: один и тот же порт может быть установлен на машины с разной архитектурой и версией ОС, тогда как пакеты собираются для конкретной версии FreeBSD и аппаратной платформы.
Большинство портов позволяет создавать пакеты (или «пэкэджи» от — пакет, посылка) с помощью «цели» package для утилиты bsd make. Пакет представляет собой архив, содержащий собранные исполняемые и другие необходимые файлы, а также данные и скрипты для быстрой автоматической установки или удаления данной программы. Вместе с программой ставятся все зависимости — другие пакеты с программами или библиотеками, необходимые данной программе.
Недостатком распространения программ в пакетах является ограничение на архитектуру, а также отсутствие гибкости, присущей портам: сложные порты могут конфигурироваться в рамках предопределённого набора настроек для поддержки расширенной функциональности либо, наоборот, для уменьшения числа ненужных зависимостей. Пакеты же, как правило, собираются для одного (простейшего) или нескольких популярных вариантов конфигурации. К тому же условия лицензирования некоторых дистрибутивов программного обеспечения запрещают распространение в двоичном виде, что приводит к недопустимости распространения данных приложений в виде пакетов.
Кроме всего этого, для обеспечения работоспособности на максимальном количестве систем сборка пакетов происходит с консервативными параметрами. Так, для архитектуры x86 типичным является генерация кода под процессор i486, в то время как генерация кода под процессоры семейства 686 (Pentium Pro и выше), по некоторым оценкам, может дать прирост производительности (в математических вычислениях) до 20 % и уменьшить размеры исполняемых файлов. Такие тонкости критичны для серверов с большой вычислительной загрузкой.
Указанные недостатки делают пакеты хорошим способом для быстрой установки простых программ, не имеющих особых требований.
Пакет привязан к конкретному диапазону версий системных и прикладных библиотек, поэтому иногда для работы пакета в более поздней версии операционной системы (особенно в случае отличия номера версии) может потребоваться установка пакета совместимости (misc/compat3x; misc/compat4x; misc/compat5x; и т. п.). Но необходимость прибегать к таким мерам возникает довольно редко — вскоре после выпуска новой версии системы становится доступен и полный набор пакетов для архитектур x86 и amd64, собранный для неё по состоянию дерева портов на момент выпуска. Обычно к моменту выхода новой версии FreeBSD собирается полное дерево пакетов из портов. Самые популярные пакеты входят в состав инсталляционных образов. Полное же дерево всегда доступно для получения по Сети.
Особенностью портов является наличие двух типов зависимостей — B-deps и R-deps. Build-deps — необходимы для сборки (иногда только для сборки некоторых конфигураций) порта. Run-deps- необходимы для запуска собранной программы.
Таким образом в систему может устанавливаться до нескольких десятков портов, которые не используются — gmake, autoconf, automake и др. Для чистки системы от таких портов используется команда pkg autoremove.
См. также Portage
Примечания
Ссылки Описание системы портов из Руководства FreeBSD Руководство FreeBSD по созданию портов Практическое руководство по использованию пакеджей и портов FreeBSD
Категория:Свободные системы управления пакетами