Свой репозиторий pkgng

pkgng - новый менеджер пакетов, обладающий весьма привлекательным функционалом. Но при использовании стандартного репозитория пакетов pkg.FreeBSD.org мы теряем возможность опциональной сборки приложения. Решение - создание собственного репозитория, в котором пакеты приложений будут собраны с необходимыми нам опциями. Для создания своего репозитория воспользуемся poudriere - инструментом для тестирования сборки пакетов.

Подготовка

Установка пакета poudriere

pkg install poudriere

Настройка poudriere

/usr/local/etc/poudriere.conf
ZPOOL=zroot
ZROOTFS=/poudriere
BASEFS=/poudriere
DISTFILES_CACHE=${BASEFS}/distfiles
FREEBSD_HOST=ftp://ftp.freebsd.org
WRKDIR_ARCHIVE_FORMAT=txz
BUILDER_HOSTNAME=freebsd.local

Формирование среды для сборки пакетов

Создание дерева портов с использованием portsnap в каталоге /poudriere/ports/default

poudriere ports -c

Обновление дерева портов производится командой

poudriere ports -u

Создание jail с системой версии 10.1-RELEASE в каталоге /poudriere/jails/101amd64. Для указания архитектуры, отличной от текущей, используется параметр -a.

poudriere jail -c -j 101amd64 -v 10.1-RELEASE -a amd64

При создании jail poundriere сразу обновляет систему в нем с помощью freebsd-update. Отдельно обновить jail можно следующей командой:

poudriere jail -u -j 101amd64

Для обновления jail до другой версии операционной системы используется флаг -t

poudriere jail -u -t 10.2-RELEASE -j 101amd64

После смены версии, логичным было бы переименовать jail, а также изменить точку монтирования. Переименование jail производится следующей командой:

poudriere jail -r 102amd54 -j 101amd64

Для изменения точки монтирования и расположения самого jail необходимо отредактировать файлы fs и mnt в каталоге /usr/local/poudriere.d/jails/102amd42.

Также внести изменения в файловую систему:

zfs rename zroot/poudriere/jails/101amd64 zroot/poudriere/jails/102amd64
zfs set mountpoint=/poudriere/jails/102amd64 zroot/poudriere/jails/102amd64

Конфигурация портов и сборка пакетов

Чтобы не собирать все дерево портов, можно указать список только необходимых в файле

/usr/local/etc/poudriere.d/lists/102amd64
www/nginx
lang/php5

Установка опций сборки пакетов по своему усмотрению

poudriere options -j 102amd64 -f /usr/local/etc/poudriere.d/lists/102amd64

Сборка пакетов с установленными опциями

poudriere bulk -j 102amd64 -f /usr/local/etc/poudriere.d/lists/102amd64

Ссылки

http://www.bsdnow.tv/tutorials/poudriere https://gist.github.com/dch/fea9ba2bf955369a05e8 http://bugreev.ru/blog:2014:09:10-шпаргалка_-_сборка_пакетов_для_систем_freebsd

Last updated

Was this helpful?