LINUX.ORG.RU
ФорумTalks

[арч] [и гентушникам тоже] пересборка : тяжела жизнь грызущих кактус!

 


0

2

Arch.
Каждый день вечером у меня (как, наверное, у многих здесь) запускается полное автообновление бинарных пакетов из основных репозиториев. Это хорошо и приятно.

С обновлениями из Аура всё гораздо неприятней.
1) сорс-пакетов более 9000, поэтому если пересобирать всё - никакого времени не хватит
2) часть пакетов - просто хлам, но нужен по зависимостям. Но этот хлам входит в автоматическую пересборку, хотя по-хорошему его бы вообще никогда не пересобирать.
3) часть пакетов - мастхэв (типа nautilus-elementary), и проверять обновления (для транка - читай «пересобирать») их нужно почаще.
4) никогда неизвестно, какие из зависимостей _действительно_ опциональные, а после установки сложно посмотреть список того, что предлагалось как опциональное в ходе пересборки.
5(!) невозможно воспользоваться результатами сборки, которые уже давно сделали другие члены сообщества.

Выше были факты, теперь имхо-интерпретация.
1) Нет механизма управляения дополнительными зависимостями. Хорошо бы его иметь. Хотя бы в таком виде как у Windows Installer в венде, если кто-то еще помнит что это такое :)
2) Нет механизма управления группами приоритетных пакетов, которые нужно пересобирать в ходе вечернего обновления системы. Нет механизма фильтрации спам.. откровенного шлака. Хорошо бы его иметь.
3) Нет механизма централизованного расшаривания результатов сборки.


По поводу пункта 5/3 подробнее. Понятно что гениальная идея «давайте просто раз в час собирать весь Аур» просто не проканает - за ночь на обычном компьютере весь Аур не собрать.

Но можно сделать централизованный сервак (очень легкий, домашняя пишмашка с мегабитным интернетом проканает), который бы держал на себе «график дежурств». Т.е каждый пользователь Арча берет на себя один из пакетов и обещает согласно выбранному им самим (и опубликованному на центральном сервере) графику пересобирать данный пакет из транка.

Понятно что люди в основном необязательные (по крайней мере я - необязательный), поэтому руками ничего собирать не будут. И за расписанием следить не будут.

Есть решение - ставим на каждый из компьютеров-участников какой-нибудь IntegrationServer типа Hudson. Он сам будет всё пересобирать. График сборки можно сделать в виде простого календарика, в котором можно прощелкать желаемую периодичность (или просто сказать Хадсону пересобирать когда компьютер простаивает). Потом собранные пакеты пушатся на центральный сервер (это позволяет не иметь белого айпи).

Из фич которые можно привертеть - автоматическое определение пакета за который ты будешь ответственным (для людей которым наплевать чо собирать).
Или, возможно, рейтинговую систему - сколько пакетов собрал, столько и скачал, или как-то так. Понятно что люди, которые будут пересобирать «свой пакет» каждый час будут в очевидном выигрыше. Но это и круто - появится больше не просто «ночных сборок», а больше ежечасных обновлений!

Таким макаром, может быть, мы сможем поддерживать бинарную версию Аура с запозданием от исходников максимум в пару дней (а в абсолютном сферическом идеале - иметь «ежечасный бинарный снапшот»).

Правда, что-то придется делать с опциональными зависимостями и архитектурами.

Гентушникам:

1) как вы делаете обновления? Есть ли практика Continuous Integration для unsupported-пакетов? Как вы вообще так живете: у вас ведь полное обновление системы должно занимать больше суток?!!!

2) как вы разруливаете опциональные зависимости и приоритеты зависимостей?

★★★★☆
Ответ на: комментарий от name_no

> На самом деле те пакеты, которые уже собраны, конпелять заново не нужно.

учитывая что ветки nightly-stable (или trunk) обновляется каждый день, то и пакеты которые билдаются с них тоже меняются каждый день. Таким образом, если система синхронизована с последними обновлениями в репозиториях, то пакетов «которые уже собраны» не так уж и много. Разве что самая базовая система.

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от stevejobs

>nightly-stable (или trunk)

«Ну не может быть человек настолько сексуально неудовлетворен» (ц)

redgremlin ★★★★★
()
Ответ на: комментарий от stevejobs

> учитывая что ветки nightly-stable (или trunk) обновляется каждый день

Гентушники тут не при чём, хочу тебе сказать. Так крепко на транке сидят только на голову больные. У нормального гентушника только максимум десяток программ из транка есть, и он их раз в неделю обновляет вместе с остальными обновлениями. То, что ты описал в топике к гентушникам никакого отношения не имеет, это LFS головного мозга в терминальной стадии.

name_no ★★
()
Ответ на: комментарий от stevejobs

>Таким образом, если система синхронизована с последними обновлениями в репозиториях, то пакетов «которые уже собраны» не так уж и много

live-пакетов (прямо с VCS'ов) у нормальных юзеров не так уж и много :) А версионные обновляются не так уж и часто.

KRoN73 ★★★★★
()
Ответ на: комментарий от stevejobs

Какой nightly-stable? У меня каждый день по 3 пакета наверное пересобирается. Или ты о 9999? Если да, то спасибо, мне - не надо

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

да на типичном десктопе мало пересобирается, меня вот банят достаточно регулярно на rsync серверах, за то что часто --sync делаю

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

для portage есть опция которая кажет что не нужно синхронизировать. Запилите скрипт которий «кажет что _нужно_ синхронизировать». или сделайте feature-request

ZuBB ★★★★★
()
Ответ на: комментарий от ZuBB

rss есть вообще-то :)

но у меня вредная привычка тыкать в gentooupdate.sh

Sylvia ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.