Из документации http://wiki.gentoo.org/wiki/Binary_package_guide#PORTAGE_BINHOST
известно, что переменная PORTAGE_BINHOST задаёт порядок в котором проверяется наличие бинарных пакетов на билд-серверах. Поэтому
возникает желание задать там два сервера - один для пакетов из дистрибутива, а второй для своих пакетов, которых в дистрибутиве нет (т.е. если клиент не найдёт на сервере дистрибутива, то отправится искать на локальный сервер).
На клиенте в /etc/portage/make.profile/make.defaults написано
PORTAGE_BINHOST="http://mirror.cnet.kz/calculate/CLDX/grp/x86_64"
допишем в /etc/portage/make.conf/custom подключение локального билд-сервера:
PORTAGE_BINHOST="${PORTAGE_BINHOST} httр://buildserver.local/x86_64"
неясно в чем разница между FEATURES=“getbinpkg” и EMERGE_DEFAULT_OPTS="–getbinpkg"
(понятно, что первая специализированная, вторая общего назначения, но есть разница или нет?)
Теперь нужно одинаково настроить флаги и разные ограничения на клиенте и на сервере.
в файле /etc/portage/make.conf/0-base подключен список оверлеев:
# Connecting overlays layman. You should not change this setting, as this may
# disrupt the package manager.
source /var/lib/layman/make.conf
в списке оверлеев (в /var/lib/layman/make.conf) подключено несколько оверлеев (например):
cat /var/lib/layman/make.conf
PORTDIR_OVERLAY="
/var/lib/layman/distros
/var/lib/layman/calculate
/var/lib/layman/dotnet
$PORTDIR_OVERLAY"
Т.е. для того, чтобы на клиенте хорошо ставились бинарные пакеты с сервера,
надо скопировать разные конфиги.
Просто так скопировать не получится, надо настроить какой-нибудь канал, например
через http при помощи wget <- http-replicator. добавляем в /etc/conf.d/http-replicator (например)
DAEMON_OPTS="$DAEMON_OPTS --alias /chroot/vm_x86_64/var/www/conf:vm_x86_64_conf"
заполняем /chroot/vm_x86_64/var/www/conf разным контентом (файлы hardlink-ками соединяем с оригинальным, папки монтируем при помощи o bind. Если вы знаете как по-другому сделать доступными ограниченное подмножество файлов расскажите)
перезапускаем /etc/init.d/http-replicator restart
скачиваем всё это какой-нибудь зубодробительной командой:
mkdir -p /root/buildserver.local && cd /root/buildserver.local
wget -r -np -nH --cut-dirs=1 --reject "index.html" http://buildserver.local/vm_x86_64_conf/
find . -type f
./var/lib/layman/make.conf
./etc/portage/make.conf
./etc/portage/package.mask/mask
./etc/portage/package.keywords/autounmask-linux-headers
./etc/portage/package.keywords/autounmask-tor
./etc/portage/package.keywords/autounmask-glibc
./etc/portage/package.keywords/keywords
./etc/portage/package.keywords/flags
./etc/portage/package.keywords/autounmask-coreutils
./etc/portage/package.keywords/autounmask-gentoo-sources
./etc/portage/package.keywords/autounmask-samba
./etc/portage/package.keywords/autounmask-python
./etc/portage/package.use/use
./etc/portage/package.unmask/unmask
копируем скачанное в нужные места
cp /root/buildserver.local/var/lib/layman/make.conf /var/lib/layman/make.conf
cp /root/buildserver.local/etc/portage/make.conf /etc/portage/make.conf/gentoo
for dir_name in package.use package.keywords package.mask package.unmask
do
grep -hvE "^#" /root/buildserver.local/etc/portage/${dir_name}/* |
grep -vE "^$" >/etc/portage/${dir_name}/gentoo
done
(если бы это было две одинаковых генты (а не calculate и gentoo), то можно было бы не копировать, а скачать прямо в корень)
Или можно вместо копирования несколькими командами - скачивать несколькими командами.
Синхронизируем деревья:
layman -L
layman -S
(тут есть накладка со списками оверлеев - надо тоже скачать, но он упрятан в /etc/layman/layman.cfg
# grep -EA10 "^overlays *\:" /etc/layman/layman.cfg | grep -v "^#" | grep -v "^$"
overlays : http://www.gentoo.org/proj/en/overlays/repositories.xml
)
и теоретически можно ставить бинарные пакеты.
Внимание вопрос: я изобретаю велосипед и уже всё это есть в calculate? или, если нет, то почему нет?