Re: Вопрос о зависимостях между пакетами в случае обновления только некой части пакетов.
20.09.2011 14:34, Andrey Rahmatullin пишет:
On Tue, Sep 20, 2011 at 02:29:30PM +0300, Oleksandr Gavenko wrote:
Есть как бы притензия по поводу того, что заранее знать о поломке
совместимости нет возможности... Ведь пакет foo создавали когда
bar_2.1 еще не вышло.
Перезальёте.
Напомню моделируемую ситуацию - пакет foo уже установлен в старой
версии.
Если он перезаливается - то версия увеличивается... но это никак не
предоставит информацию о несовместимости старой инстяляции и обновленной
версии стороннего пакета bar.
Логично что о несовместимости можно сообщить в новой версии bar.
Но это влечет за собой необходимость матейнеру bar тестировать все
пакеты, которые зависят от bar, что, мне кажется, никто не делает...
19.09.2011 23:41, Dmitry Nezhevenko пишет:
> У bar при смене soname (поломке обратной совместимости) должно полностью
> меняться имя пакета. Плюс новый не должен пересекаться со старым по
> файлам. Это позволяет иметь установленными две версии libbar, пока весь
> софт не переедет на новую
>
> http://www.debian.org/doc/debian-policy/ch-sharedlibs.html
>
Кажется это и есть "правильное" решение.
Для любителей http://semver.org/ можно major помещать в имя пакета
как например:
python2.5 python2.6 emacs21 emacs22 emacs23
Наверно пакетировщик столкнется с необходимостью разделить файлы
на непересекающиеся между версиями пути...
Еще вижу заковырку когда некий пакет объявляет зависимость *только* от
виртуального пакета. Т.к. имя виртуалного пакета не меняется
(ведь его назначение говорить о наличии в системе неких "возможностей"),
то
Require: emacs (>= 21.4)
может привести к поломке пакета, если, например, объявленая depreciate
функция наконец то была удалена в новой версии emacs24.
Как выход вижу более явно описывать зависимости:
Require: emacs21 | emacs22 | emacs23
Применяется ли такое на практике или это выдумка и как происходит в
действительности?
Reply to: