Свой репозиторий pkgng
pkgng
- новый менеджер пакетов, обладающий весьма привлекательным функционалом.
Но при использовании стандартного репозитория пакетов pkg.FreeBSD.org
мы теряем возможность опциональной сборки приложения. Решение - создание собственного репозитория, в котором пакеты приложений будут собраны с необходимыми нам опциями. Для создания своего репозитория воспользуемся poudriere
- инструментом для тестирования сборки пакетов.
Подготовка
Установка пакета poudriere
pkg install poudriere
Настройка poudriere
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
Конфигурация портов и сборка пакетов
Чтобы не собирать все дерево портов, можно указать список только необходимых в файле
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?