Binfarm — комплексное решение позволяющее организовывать бинафермы, с помощью которых создаются бинарные пакеты.

Установка

# emerge trueoffice/binfarm

Создание бинафермы

# bfbuild <stage> <name>

Chroot в бинаферму

# bfchroot <name>

bfchroot выполняет обычный chroot в папку бинафермы предварительно примонтировав proc, dev, portage и distfiles. При выходе из chroot отмонтирует все обратно.

Так же доступны отдельные утилиты bfmount и bfumount.

# bfmount <name>
# bfumount <name>

Листинг бинаферм

# bflist 

amd64
amd64-server
amd64-vps
amd64-vps-web
x86
x86-server
x86-vps

Заливка на сервер

Заливка на сервер происходит посредством rsync.

# bfsyncportage 
# bfsyncbinpkgs 
# bfsyncstages
# bfsyncdev

При запуске с флагом -n покажет предварительный список заливаемых файлов.

Файлы конфигурации

/etc/binfarm/make.conf — стандартный файл который заменит /etc/make.conf в бинаферме при ее создании.

MAKEOPTS="-j12"

source /usr/portage/local/layman/make.conf

EMERGE_DEFAULT_OPTS="--ask --verbose --usepkg --buildpkg"

/etc/binfarm/binfarm.conf — настройки для скриптов.

PATHTOBINFARM="/root/chroot"

PATHTOPORTAGE="/usr/portage/";
RSYNCPORTAGE="rsync://binpkg@download.trueoffice.org/gentoo-portage-write/";

PATHTOBINPKGS="/var/www/binpkgs/";
RSYNCPKGS="rsync://binpkg@download.trueoffice.org/binpkgs/";

Создание stages

Стейжи создаются на основе бинаферм командой:

# bftruestages -- создает стейжи из всех бинаферм;
or
# bftruestages amd64* -- создает стейжи по маске;

Место куда будут складываться стейжи определено в binfarm.conf

...
PATHTOSTAGES="/var/www/stages/";
...

Место куда будут заливаться стейжи по rsync определено в binfarm.conf

RSYNCSTAGES="rsync://binpkg@download.trueoffice.org/stages";

Дерево создаваемое bftruestages

|-- amd64
|   |-- 20090609.md5sum
|   |-- 20090609.tar.bz2
|   |-- 20090615.md5sum
|   |-- 20090615.tar.bz2
|   |-- latest.md5sum -> 20090615.md5sum
|   |-- latest.tar.bz2 -> 20090615.tar.bz2
|   |-- server
|   |   |-- 20090609.md5sum
|   |   |-- 20090609.tar.bz2
|   |   |-- 20090615.md5sum
|   |   |-- 20090615.tar.bz2
|   |   |-- latest.md5sum -> 20090615.md5sum
|   |   `-- latest.tar.bz2 -> 20090615.tar.bz2
|   `-- vps
|       |-- 20090609.md5sum
|       |-- 20090609.tar.bz2
|       |-- 20090615.md5sum
|       |-- 20090615.tar.bz2
|       |-- latest.md5sum -> 20090615.md5sum
|       |-- latest.tar.bz2 -> 20090615.tar.bz2
|       `-- web
|           |-- 20090609.md5sum
|           |-- 20090609.tar.bz2
|           |-- 20090615.md5sum
|           |-- 20090615.tar.bz2
|           |-- jails
|           |   |-- 20090609.md5sum
|           |   |-- 20090609.tar.bz2
|           |   |-- 20090615.md5sum
|           |   |-- 20090615.tar.bz2
|           |   |-- latest.md5sum -> 20090615.md5sum
|           |   `-- latest.tar.bz2 -> 20090615.tar.bz2
|           |-- latest.md5sum -> 20090615.md5sum
|           `-- latest.tar.bz2 -> 20090615.tar.bz2
`-- x86
    |-- 20090609.md5sum
    |-- 20090609.tar.bz2
    |-- 20090615.md5sum
    |-- 20090615.tar.bz2
    |-- latest.md5sum -> 20090615.md5sum
    |-- latest.tar.bz2 -> 20090615.tar.bz2
    |-- server
    |   |-- 20090609.md5sum
    |   |-- 20090609.tar.bz2
    |   |-- 20090615.md5sum
    |   |-- 20090615.tar.bz2
    |   |-- latest.md5sum -> 20090615.md5sum
    |   `-- latest.tar.bz2 -> 20090615.tar.bz2
    `-- vps
        |-- 20090609.md5sum
        |-- 20090609.tar.bz2
        |-- 20090615.md5sum
        |-- 20090615.tar.bz2
        |-- latest.md5sum -> 20090615.md5sum
        `-- latest.tar.bz2 -> 20090615.tar.bz2

bfsyncdev

bfsyncdev — утилита заливки trueportage в стабильную ветку.

binfarm.conf

PATHTOTRUEPORTAGEDEV="/usr/portage/local/layman/trueportage-dev/";
RSYNCTRUEPORTAGE="rsync://binpkg@download.trueoffice.org/trueportage-write";