From: Aleksey Avdeev <solo@solin.spb.ru>
To: ALT Linux Team development discussions <devel@lists.altlinux.org>
Subject: Re: [devel] Переходное полиси для для питона
Date: Sun, 28 Oct 2007 07:10:14 +0300
Message-ID: <47240BA6.3030908@solin.spb.ru> (raw)
In-Reply-To: <20071028015854.GY19325@solemn.turbinal>
[-- Attachment #1: Type: text/plain, Size: 5656 bytes --]
Alexey Tourbin пишет:
> On Sun, Oct 28, 2007 at 03:56:47AM +0300, Aleksey Avdeev wrote:
>
>>>Если отбросить практическую причину (что программа сборки дополнительных
>>>модулей в двух экземлярах так никгода и не была даже частично
>>>реализована),
>>
>> Но _принципиальная_ возможность её реализации присутствовала. И это --
>>главное.
>
>
> Принципиальная возможность есть всегда.
> Другое дело, насколько это вписывается в дизайн репозитария.
>
>
>>>то всё равно это никак нельзя по-нормальному сделать на
>>>уровне rpm-зависимостей. То есть если /usr/bin/python висит на
>>>альтернативах, то эта альтернатива динамически переключает зависимости
>>>вида pythonX.Y(...) на pythonX.Z(...). Я про это в свое время много спорил.
>>
>>1. Можно напомнить суть споров? (Что-то не найду их в своём архиве...
>>Похоже не так ищу.)
>>
>>2. Если не нравится /usr/bin/python на альтернативах, то может стоит
>>использовать вариант взаимоконфликтующих пакетов? (В смысле:
>>/usr/bin/pythonX и /usr/bin/pythonY спокойно уживаются вместе, но пакет
>>содержащий /usr/bin/python может быть только один.)
>
>
> Сумбурно отвечаю сразу на два вопроса. Если хотим иметь два питона
> в репозитарии, то никак не получается нормально сделать дефолтный
> /usr/bin/python. То есть нужно отказаться от /usr/bin/python ВООБЩЕ
> и оставить только /usr/bin/pythonX.Y и /usr/bin/pythonX.Z.
C этим пунктом согласен.
>
> Но отсутствие дефолтного питона явно не в интересах репозитария.
И с этим -- тоже.
>
> ПОЧЕМУ: сейчас дефолтный питон /usr/bin/python версии 2.4 и зависимости
> у пакетов имеют вид python2.4(...). Если обновить дефолтный
> /usr/bin/python на 2.5, то зависимости у всех остальных пакетов никуда
> не денутся, они останутся python2.4(...). Теперь подумайте, что
> получается, когда питон обновился, а скрипт, запускаемый через
> /usr/bin/python имеет зависимости на питон 2.4, а на самом деле в
> системе стоит питон 2.5. Например, этот скрипт для работы требует
> что-то типа python2.4(gtk). Но при запуске через новый /usr/bin/python
> эта зависимость как бы динамически трансформируется на python2.5(gtk).
> То есть зависимость может быть формально удовлетворена, но получается
> пшик, скрипт не запускается потому что уже нужен gtk'шный модуль для
> 2.5, а не для 2.4.
Так может достаточно отделить мух от котлет? Например так:
1. В системе есть /usr/bin/pythonX.Y. И их может быть несколько.
2. В системе есть /usr/bin/python, как указатель на некоторый
/usr/bin/pythonX.Y. И данная ссылка может предоставляться несколькими
_взаимоконфликтующими_ пакетами.
3. При сборке пакета со скриптами использующими /usr/bin/python --
добавляем в их зависимость на пакет предоставляющий /usr/bin/python в
сборочной среде. В идеале, здесь желательно иметь ручку, отключающую
данное поведение: её можно использовать для получения пакетов работающих
с неким диапазоном версий питонов -- возможность поставить конфликты на
те версии с которыми скрипт не работает у мантейнера останется.
Тогда мы имеем с гуся следующее:
1. Пакеты со скриптами использующими /usr/bin/pythonX.Y напрямую --
спокойно продолжают это делать, независимо от версии /usr/bin/python
установленной в системе.
2. Если в пакете используется /usr/bin/python -- при установке будет
попытка вытянуть нужную версию (ту, с которой пакет был собран). Если
это приведёт к конфликтам -- ставящий будет вынужден разрешить их в
ручную (и это правильно).
3. Пакет которому необходим старый питон -- для не конфликтности с новым
достаточно просто пропатчить.
4. Возможно плавное замещение питона в дистрибутиве. (Но не на
конкретной системе! Там, в прочем, возможен выбор _момента_ перехода.)
Если я то-то не учёл -- прошу указать.
>
>
>> Мне активно не нравиться эта идея, т. к. на практике приведёт к тому,
>>что нужный для конкретного приложения питон (и само приложение) будет
>>развёрнут в /home/<user>... А это не тот стиль, который стоит
>>провоцировать (приходилось сталкиваться с таким, на предыдущей работе).
>
>
> Я делаю системное решение. То есть я исхожу из того, что все пакеты
> В РЕПОЗИТАРИИ должны будут работать/починиться под новый питон.
> Что там запускается из /home/user мне не особо интересно. Если там есть
> что-то важное, то нужно это опакетить, и тогда придётся учитывать этот
> пакет в плане миграции на питон 2.5.
Этот вариант идеален, но я не чую его жизнеспособности в условиях
ограниченности ресурсов. :-/
При вашем варианте имеем следующие грабли:
1. Задержка на попадание нового питона в Сизиф, пока не будет
оттестировано всё, что будет сочтено "ядром питона"
2. При появлении нового питона в Сизифе -- часть приложений (что в
"ядром питона" не вошла) "неожиданно" перестанет работать.
3. Калуарность тестирования нового питона (т. к. помещать его в Сизиф,
пока "ядром питона" не оттестировано/портировано -- нельзя).
Причём, за счёт того что для каждого использующего питон "ядром
питона" своё, и с "ядром питона" коллег совпадать не обязано -- получаем
источник конфликтов в рассылке...
>
>
>> Подход, когда приложение может потребовать нужную версию питона --
>>_мне_ нравится больше. Да, он сложнее в реализации. Но это то
>>направление (по интерпретируемым языкам) в котором нужно двигаться.
>
>
> То что нам с вами нравится это иногда имеет мало отношения к реальности.
> То есть нам иногда нравятся противоречивые вещи, которые, строго говоря,
> по-нормальному никак нельзя совместить.
Но это не значит, что таких путей искать не нужно.
--
С уважением. Алексей.
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 548 bytes --]
next prev parent reply other threads:[~2007-10-28 4:10 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-26 17:23 Alexey Tourbin
2007-10-26 18:56 ` Peter V. Saveliev
2007-10-26 19:24 ` Alexey Tourbin
2007-10-26 21:05 ` Peter V. Saveliev
2007-10-26 21:58 ` Alexey Tourbin
2007-10-26 22:45 ` Peter V. Saveliev
2007-10-26 23:02 ` Alexey Tourbin
2007-10-26 23:12 ` Peter V. Saveliev
2007-10-27 7:58 ` Andrey Rahmatullin
2007-10-27 14:49 ` Alexey Tourbin
2007-10-27 16:15 ` Andrey Rahmatullin
2007-10-27 6:22 ` Vitaly Lipatov
2007-10-27 8:05 ` Peter V. Saveliev
2007-10-30 8:30 ` Максим Иванов
2007-10-28 0:56 ` Aleksey Avdeev
2007-10-28 1:58 ` Alexey Tourbin
2007-10-28 4:10 ` Aleksey Avdeev [this message]
2007-10-28 7:38 ` Vitaly Lipatov
2007-10-28 9:00 ` Peter V. Saveliev
2007-10-28 9:41 ` Aleksey Avdeev
2007-10-28 13:49 ` Alexey Tourbin
2007-10-28 10:27 ` Aleksey Avdeev
2007-10-28 22:52 ` Pavlov Konstantin
2007-10-28 10:08 ` Alexey I. Froloff
2007-10-28 10:31 ` Eugene Prokopiev
2007-10-28 11:25 ` Alexey I. Froloff
2007-10-28 14:12 ` Alexey Tourbin
2007-10-28 16:52 ` Peter V. Saveliev
2007-10-28 17:34 ` [devel] python vs gcc Alexey Tourbin
2007-10-28 18:43 ` Peter V. Saveliev
2007-11-02 6:21 ` Andrey Orlov
2007-11-02 7:25 ` Peter V. Saveliev
2007-11-02 8:54 ` Andrey Orlov
2007-11-02 9:20 ` Alexey I. Froloff
2007-11-03 9:09 ` Andrey Orlov
2007-11-03 14:07 ` Alexey I. Froloff
2007-11-05 20:43 ` Andrey Orlov
2007-10-28 10:38 ` [devel] Переходное полиси для для питона Aleksey Avdeev
2007-10-28 10:58 ` Sergey Bolshakov
2007-10-28 11:20 ` Aleksey Avdeev
2007-10-28 11:17 ` Alexey I. Froloff
2007-10-28 11:25 ` Aleksey Avdeev
2007-10-28 11:55 ` Alexey I. Froloff
2007-10-28 12:42 ` Aleksey Avdeev
2007-10-28 11:52 ` Alexey Tourbin
2007-10-28 12:16 ` Alexey I. Froloff
2007-11-03 9:31 ` Andrey Orlov
2007-10-28 14:12 ` Alexey Tourbin
2007-10-28 16:55 ` Peter V. Saveliev
2007-10-28 12:11 ` Alexey Tourbin
2007-10-28 12:36 ` Aleksey Avdeev
2007-10-28 14:34 ` Alexey Tourbin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=47240BA6.3030908@solin.spb.ru \
--to=solo@solin.spb.ru \
--cc=devel@lists.altlinux.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git