Создание собственных пакетов из портов с нужными опциями используя Poudriere на FreeBSD
- Информация о материале
- Автор: sapatgusom
- Категория: FreeBSD

Официальный репозиторий пакетов FreeBSD предоставляет бинарные пакеты, собранные с параметрами по умолчанию. Если Вам нужны пакеты, скомпилированные с нужными опциями, то есть два варианта: собрать пакеты вручную из портов на каждом сервере/десктопе или использовать Poudriere для однократной сборки пакетов с нужными опциями и их распространения в виде полноценного репозитория.
Poudriere - это тот же инструмент, который проект FreeBSD использует для сборки своих официальных пакетов. Он создает чистые среды jail, собирает порты изолированно и создает подписанный репозиторий пакетов.
Создание портов непосредственно на производственном сервере - сложная задача. Зависимости сборки загрязняют систему. Сборка может завершиться с ошибкой на полпути, оставив частично неиспользованное состояние. На разных серверах могут использоваться разные параметры компиляции для одного и того же порта.
Poudriere решает все эти проблемы:
- Чистые сборки: каждая сборка выполняется в новой среде (jail). Никакие артефакты сборки или зависимости не попадают на хост.
- Воспроизводимость: одна и та же версия дерева портов и параметры всегда приводят к созданию одних и тех же пакетов.
- Параллелизм: Poudriere создает несколько портов одновременно, используя все ядра ЦП.
Работа репозитория: результат - совместимый репозиторий с корректным каталогом и возможностью подписи. Журнал аудита: записи для каждой сборки, четко показывающие успех, неудачу и пропущенные порты.