[sisyphus] Re: [POLICY] Sisyphus
Michael Shigorin
=?iso-8859-1?q?mike_=CE=C1_osdn=2Eorg=2Eua?=
Пн Янв 26 19:47:35 MSK 2004
On Mon, Jan 26, 2004 at 06:48:22PM +0300, info wrote:
> > > Сутки - мало!
> > Ну это "первая степень". "Вторая" -- пресловутая неделя.
> Не должно быть этой "первой степени"!!! Мало кто успеет
> обновиться, собраться и оттестироваться всего лишь за сутки.
А на это никто и не закладывается. Это минимальный интервал
между "обычными" обновлениями, которые скорее монотонны, чем
платформенные.
> Упаковщий должен иметь _достаточный_ и вдобавок заранее
> известный ему период времени, относительно которого он уверен:
> за этот период окружение не изменится.
Так уже.
> Да, оптимум - неделя.
> > Кстати, по крайней мере какая-то информация по этой части для
> > mdk installer есть ("важно/неважно/прикольно").
> Субъективный взгляд, сильно зависящий от предметной области,
> где используется машина.
Бродят мысли по более многовекторному "взвешиванию" пакетов.
> Так что это деление не работает. Нужно делать новое, по
> совершенно другому принципу. А вот чтобы понять, какой это
> принцип, и нужна блок-схема пакетов вместе с зависимостями.
Да в общем понятно уже не первый год...
> > http://www.altlinux.ru/pipermail/community/2002-January/040036.html
> Теперь бы продолжить - для полного сизифа, да еще и постоянно
> (или хотя бы периодически) обновляемый.
На моей домашней системе (~3G used на /usr, 1218 пакетов) rpmdot
отрабатывал что-то с полчаса и сравнимо -- собственно dot. Огреб
PostScript на 2.7M, которым давится gv :]
> Получается же классическое дерево, сиречь - граф. В корне, на
> нулевом уровне - kernel, и дальше от него пошло ветвиться.
Не дерево, а именно что граф. И не kernel, а basesystem :)
> > Для удобства положил тот .ps сюда:
> > http://lrn.ru/~mike/rpmdeps.ps.gz
> Чего-то он у меня не открылся, точнее - пустой лист...
Распакуйте его и/или поставьте mozplugger :)
> Не знаю, можно ли оценивать важность алгебраическим методом,
> как сумму зависимостей (если правильно понял)... Важность
> скорее вытекает из топологии пакетов.
Боюсь, на эту тему я говорить не сейчас не готов.
> Почему, к примеру, существуют отдельные группы "Офис" и
> "Издательство" - когда "издательские средства" есть часть
> офиса?
Усомнюсь, ну да ладно.
> Результат - понятие "группы" на практике использовать крайне
> затруднительно. Непонятно, где что искать. Это понятие и не
> используется de-facto.
Кстати, /usr/lib/rpm/GROUPS в RH9 сильно похудел:
http://www.fedora.us/wiki/RPMGroups
> По-моему, это можно сделать элементарным скриптом, проверяющим
> даты сборки пакетов... Ну, и в сочетанием с той самой схемой
> ранжирования, о которой мы говорим.
Пока не вижу этой схемы ранжирования.
Есть вариант инициировать ее от раскладки по компонентам (и в
дальнейшем использовать _для_ этой самой раскладки) -- base,
kernel, ...
> Причем - важный момент - та схема, о которой я говорю, вовсе не
> означает, что между пакетами разных уровней непременно должна
> быть прямая зависимость. Тот же KDE будет, в общем случае,
> работать на самых разных версиях того же Xfree. Но если
> обновился XFree - (а тем более glibc) - то полезно пересобрать
> KDE. Так сказать, во избежание....
Ммм... в данном случае скорее из-за всяких libXft, чем XFree86.
Есть подозрение (не только мое), что это -- индикатор болезни не
KDE, а включения изменчивого (Xft) в разделенное протоколом
(X11). Могу быть неправ.
> Так что речь не о зависимости в программистском смысле слова, а
> о зависимости, так сказать, в административном.
Ugh. Технологические вопросы еще как-то решаемы, вот с
административными, как показывает практиак, все куда хуже.
> Смотрим целевые аудитории пользователей Сизифа:
http://wiki.atmsk.ru/index.html/AltPolicy видели, кстати?
> Отсюда политика:
> "сизиф А" - это тот сизиф, который есть на сегодняшний день,
> только обновляемый жестко раз в неделю (скажем, в ночь с
> пятницы на субботу).
Ммм... про такую возможность не думал -- для меня он все же
daily. На самом деле это [обычно] ничуть не страшно для
рассматриваемой темы.
> "сизиф Б" - это тоже практически тот же самый сизиф, что и
> сегодня, а который заливаются пакеты по мере поступления
> поступления, но к которому имеют доступ _для_скачивания_ только
> упаковщики; причем для упаковщиков особо оговаривается, дабы
> они старались собирать свои пакеты на "сизифе А", а новые
> пакеты из "сизифа Б" брали только если уж край и без них
> никуда.
Ну, в моей терминологии это *RPMS.incoming :)
[гм]
> Технически - я бы сделал как две отдельные директории на
> сервере, одна под названием, например, sisyphusA, вторая
> sisуphusB.
>
> Далее, в момент обновления:
> {стоп доступу на оба сизифа}
> mv sisyphusA -> куда-нибудь в архив.
> mv sisyphusB -> sisyphusA
> {старт доступу на сизиф А}
> cp sisyphusA -> sisyphusB
> {старт доступу на сизиф Б}
Эту (подобную) схему для начала бы реализовать для собственно
синхронизации -- с тем, чтобы не получалось тянуть заливаемое.
С "отмашкой" по завершении, чтобы зеркалирующие скрипты
приступали к делу.
У меня на зеркале на время синхронизации в каталог выставляется
файловый флажок __SYNCING__ -- все хоть средство.
> Доступ к сизифу А прервется буквально на доли секунды, сизиф Б
> будет недоступен чуть дольше - ровно на время копирования.
Думаю, с cp -l и его можно сократить.
> > т.е. отдельная компонента Sisyphus, которая:
> > - принимает в себя свежезалитые пакеты наиболее оперативно;
> > - рекомендована к применению разработчиками;
> > - дополнительно тестируется опытными пользователями.
> Вот это и есть сизиф Б, с той только поправкой, что сборка новых
> пакетов идет, _как_правило_, не на нем, а на сизифе А.
В моей задумке -- _именно_ на ней. Тут ключевой момент --
"непрерывность" платформы в течение TIME2. Особые точки -- смену
gcc/glibc/... -- не продумывал толком вот только. Отмашка за
TIME2 перед ними плюс неприем пакетов, собранных на сизифе до
"точки перегиба", после нее?
При этом для "точечности" есть четкие основания (вроде смены
soname у библиотеки или изменения поведения findreq) и не очень
(например, расширение набора дополнительных макросов,
предоставляемых "материнским" пакетом -- см. /etc/rpm/macros.d/).
Соответственно первое отлавливается и нотифицируется автоматом, а
вот второе -- дело майтнейнера пресловутого "м." п. Ему, правда,
было бы удобнее не вылавливать всех майнтейнеров "клиентов"
своего пакета вручную, а черкнуть им всем сразу на какой
<pkg>@package-deps.altlinux.org.
> > > В ALTе должна стоять машина с ПОЛНЫМ установленным текущим
> > > сизифом.
> > Это невозможно по очевидным причинам (Conflicts:).
> Вы имеете в виду конфликты между файлами разных пакетов - как,
> например, lesstiff и openmotif? Ну, надо подумать... Десяток
> машин ставить негоже, дороговато будет, а вот несколько
> chrooted вариантов сизифа на одной мощной машине - почему бы и
> нет?
Я к тому, что нет "полного сизифа" (или "полного debian").
Проверять же пакет кажется достаточным в той среде, которая
построена из basesystem + его зависимости.
> > > Если нет - заворачиваются, а сборщик получает
> > > соответствующее письмо.
> > Эээ... а Вам QA Team Robot не пишет душевные письма, да? :-)
> Нет. Я не упаковщик :-))) Но с пакетами из сизифа, у которых
> неразрешенные зависимости - дело при установке имел-с... :-(((
(ну по крайней мере баги на них вешать можно)
Результаты apt-cache unmet при их критичности появляются в
devel на .
> Все правильно. Цикл жизни сизифа:
> - обновление упаковщиком своей машины из сизифа;
> - компиляция своих пакетов;
> - обновление самого репозитория.
> По сути, ведь это та же последовательность, что и выполнение
> команд процессором. Только там: загрузка данных в регистры,
> выполнение команды, запись результатов. Представьте себе, что
> бы было, если бы в середине выполнения, скажем, команды
> сложения могло бы изменяться содержимое регистров данных,
> хранящих слагаемые...
> Как проблема решается в процессорах, всем известно: тактовая
> частота. Вот ровно об этом и идет речь применительно к сизифу.
> Должна быть задана некая тактовая частота... И определено,
> когда что можно делать, а когда и что - нельзя.
Напомнило тему "темп работы команды" в декабрьском devel на ... и
давнешнее обсуждение того, как развивалась mozilla до и после
определенного этапа, когда периодичность выпусков стала
планироваться и стабилизироваться -- в т.ч. вследствие
"притирания" команды и налаживания управления проектом.
--
---- WBR, Michael Shigorin <mike на altlinux.ru>
------ Linux.Kiev http://www.linux.kiev.ua/
Подробная информация о списке рассылки Sisyphus