[devel] Советы по установке и обновлению Fwd: Re: [Python-devel] Обновление python

Andrey Orlov =?iso-8859-1?q?cray_=CE=C1_neural=2Eru?=
Вт Мар 15 02:29:48 MSK 2005


Меня удивило то, что обновление вызвало проблемы. Похоже, чем гибче инструмент, тем
тяжелее им работать.  Мы в PDT перетерли эти проблемы, вот краткое резюме.


----------  Forwarded Message  ----------

Subject: Re: [Python-devel] Обновление python
Date: Saturday 12 March 2005 02:31
From: Andrey Orlov <cray_devel на neural.ru>
To: Закрытый список рассылки для обсуждения вопросов поддержки Python в ALT Linux <python-devel на altlinux.ru>

On Friday 11 March 2005 23:45, Vitaly Lipatov wrote:
> > Да, к сожалению apt не сумел разрулить переход.
> А это нормально?

Не совсем. Я, кстати, в некоторых случаях обновлялся нормально. На достижение этой
нормальности я убил все празники. apt-же не сумел разрулить ваши извращенные идеи. Ниже
следует некоторые идеи не-извращенные и дается их сравнения с идеями извращенными.

В принципе, если у вас есть пакеты, требующие __модули__ по
зависимостям вида python2.3(<МОДУЛЬ>), то у вас потянется установка
пакетов серии python2.3, которая вызовет снос заобсолеченных версий
пакетов серии python. В то же время, если у вас есть хоть один модуль, для которого 
уже есть модуль, пересобранный с новым питоном, то он проапдейтится и потянет
установку python2.4(<МОДУЛЬ>) - т.е. модулей из python-2.4.0, что вызовет снос
и замену по obsolete серии пакетов python2.4-*.

Таким образом, идеальный случай апдейта (это оттестировано), поставлен python2.4-relax
из дедала, свои пакеты пересобраны c --with или с альтернативным питоном и без --with,
и установлены. Делаем apt-get dist-upgrade и все ставиться. В теории, которая более-меня подтверждена
моей практикой.

Проблема, как вы понимается, в пакете strict, который не доопускает совместной установки.

Следующий удобный способ - дожидаемся, когда все пакеты пересоберуться с новым питоном,
и после этого делаем dist-upgrade. Собственно, потребители питона (в отличие от нас с вами)
должны использовать именно этот способ, и в этом случае тоже все проходит гладко.

> > Я обошел это примерно так:
> >
> > apt-get install python2.3-relaxed python2.3-base python2.3-dev
> > ... python2.3-modules ... python2.3-modules-ИМЯ... прописал
> > так почти все пакеты python2.3-*.
> Это принимать как рекомендацию по обновлению из Сизифа? Хотелось 
> бы проще.

Ну и наконец для извращенцев. Т.е. для тех, кто все-таки решил (зачем-то непонятным)
поставить python2.3. Почему это извращенцы. Есть три не-извращенных варианта:

 1. Я разработчик и, принимая риск, сношу весь шит, ставлю python-2.4.0, остальное пересобираю и доставляю. 
Это понятно и это работает.

2. Я потребитель, дожидаюсь, пока все интересные мне пакеты пересоберут с новым питоном, и когда это будет сделано,
я получаю гладкий dist-upgrade. Это тоже понятно.

3. Я экспериментатор, мне интересно пощупать новый питон. В тоже время, я не хочу чбы мне вынесло полситстемы. Тогда
вы ставите python2.4 из дедала. Возможно с --force, чбы не снести python-strict.
 
Все остальные варианты не позволят достичь каких-либо целей, не досьтжимых перечисленными, но обрекают
вас на кучу проблем. Поэтому их нужно избегать, стараясь свести к перечисленнным.

Для разработчиков, самый простой способ сведения - поставить чрут или vserver, поставить туда новый питон, и пройти там
алгоритм 1 для своих пакетов. Потом превратится в потребителя, и на основном сервере пройти алг.2. Возможно, вам придется
списаться с другими мантейнерами или пересобрать для себя чужие пакеты на п.1. Думаю, что можно договорится с их мантейнерами
о разовой альтернативной заливке. Я бы очень хотел, что бы все по этому пути пошли, особенно с последней оговоркой.

Теперь об извратах. Итак, я хочу поставить python2.3 вместо python. Зачем - хрен его знает, они друг от друга не отличаются.
Что делать? Можно так, как написал Иван. Можно так:

 apt-get install python2.3-strict и/или apt-get install python2.3-module

Ничего не выиграли, проиграли возможность плавного апгрейда.

Второй путь. Я хочу поставить python2.3 & python. Зачем - опять же не знаю, это идентично устанвке к имеющемуся 
python-у python2.4 из дедала. Достигается так: отрабатываете предыдущий п., затем:

apt-get install python2.3-relaxed, apt-get install python-relaxed, далее доставляете нужные модули. 

Наконец, третий п. Я хочу иметь поэтапный апгрейд. Это хоть понятно зачем :), на домашней машине. Проблема только 
одна: Два питона с python-strict стоять не могут. Соотв. python-strict нужно сносить. Вместе с пакетами всех добрых
людей, которым не хватило упорство воспользоваться полиси. Делается так:

apt-get install python-relaxed=2.3.4 (т.е. ставим старый пакет, где вы его возьмете - ума не приложу, можно поискать на зеркалах,
по идее, вся байда с дедалом была нужна в том числе и для того, чбы все заинтересованные могли это сделать в рамках "посмотреть 
на python2.4" - кто не воспользовался, я не виноват. Я три месяца просил это сдеать).  Далее, выполняем apt-get upgrade - т.е. практически
идентично не-извр.алг.2. 

Все-таки, мне кажется тоже ничего не выиграли по ср. с ориг.не-извр.алг.2, проиграли пакеты, зависящие от python-strict.

> > Потом тоже самое для 2.4...

:)

В общем, что я хочу сказать. Общее резюме такое: пересобирайте как-нибудь свои пакеты -- благо, современный алт-линукс предоставляет для
этого достаточно средств -- и ждите, пока apt-get dist-upgrade не предложит вам удовлетворительный вариант. НЕ ФОРСИРУЙТЕ переход
на python-2.4 или python2.3: АВТОМАТИЧЕСКИЕ ЗАВИСИМОСТИ ДЛЯ ТОГО И НУЖНЫ, ЧБЫ ВСЕ ПРОИЗОШЛЛО АВТОМАТИЧЕСКИ. Пинайте
тех, кто не пересобрал свои пакеты. 

Еще раз - все реально необходимые цели достижимы гладко. См. три неизвращенных алгоритма. А кто хочет изврата - получит его
в полный рост выносом половины системы. И наконец: ДУМАЙТЕ ОСНОВНОЙ ВЕТКОЙ. Забудьте про питон 2.3. Его больше нет. Если
вы будете старатся решить проблемы так, как будто 2.3 в сизифе больше нет, вы сэкономите время и силы себе и мне. Спасибо за
понимание.

После небольшого обсуждения (до понедельника) предлагаю отредактированный вариант этого текста пнуть в основной список.


-------------------------------------------------------

-- 
WthBstRgrds -- Андрей Орлов --  
 --- http: www.neural.ru, mail: cray на neural.ru, jid: cray на altlinux.org ---
----------------------------------------



Подробная информация о списке рассылки Devel