Неделю назад мы обсуждали в рассылке вопрос переноса портежей в Git репозиторий. Предложение вызвало множество положительных отзывов и было принято единогласно.
Итак, начиная со Stage версии 20111114
портежи по умолчанию синхронизируются с нашим Git-сервером, размещенным в Санкт-Петербурге. В Git репозитории хранится копия портежей с урезанной информацией Manifest и Changelog, что позволит компенсировать излишнее место, отводимое под Git. Скорость выполнения eix-sync
, спустя пару дней без синхронизации на 10 Мб канале составляет около 30 секунд. Повторное выполнение синхронизации уже в основном уходит на обновление кэша портежей и составляет около 20 секунд.
К запуску копии портежей мы изменили расположение оверлея. Теперь портежи и оверлей Calculate расположены по следующему пути: git://git.calculate.ru/calculate/portage
и overlay
.
Помимо скорости, у нововведения есть ещё одно важное преимущество. Во время подготовки обновления бинарных пакетов, мы исправляем маскировки, USE-флаги и нередко зависимости. Спустя считанные минуты после обновления портежи продолжают обновляться, зачастую приводя к новым маскам и изменениям USE-флагов: пакеты замещаются новыми, без смены версии пакета меняются USE-флаги. Все это заставляет в лучшем случае компилировать пакеты, для которых существует бинарный вариант, в худшем использовать функцию autounmask. Использование среза портежей позволит исключить подобные сложности в обновлении, т.к. портежи, оверлей и бинарные пакеты теперь будут полностью соответствовать.
Calculate Portage не вносят изменений в оригинальные портежи. Соответственно можно всегда вернуться на Gentoo Portage с синхронизацией по RSYNC.
Ещё одно нововведение - поддержка загрузки Git по протоколу http. При отсутствии прямого доступа к сети Интернет, вы можете настроить обновление оверлея и портежей через прокси, сменив путь к репозиторию с git://
на http://
.
Для изменения ссылки к Calculate Overlay достаточно удалить и затем добавить оверлей Calculate:
layman -d calculate
layman -a calculate
Для миграции портежей на Git, выполните:
cd /usr
git clone --depth 1 git://git.calculate.ru/calculate/portage portage-git
rm -rf portage
mv portage-git portage
emerge -u1 portage
eix-sync
Для включения обновления через прокси выполните следующие действия:
echo "proxy : http://PROXY:8080" >>/etc/layman/layman.cfg
git config --global http.proxy PROXY:8080
sed -ri 's|(url = )git://|\1http://|' /var/lib/layman/calculate/.git/config
sed -ri 's|(url = )git://|\1http://|' /usr/portage/.git/config
Для загрузки файлов через прокси вам может понадобиться изменить настройки wget файле /etc/wgetrc
.
Синхронизация по протоколу http будет выполняться заметно дольше, т.к. на данный момент не поддерживается параметр “–depth 1”. Следовательно будут загружаться все коммиты, что несколько увеличит трафик. Тем не менее это все же лучше, чем использовать RSYNC.
В будущих версиях мы научим cl-install настраивать обновление через прокси.
Успешной работы!