[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Вопрос о зависимостях между пакетами в случае обновления только некой части пакетов.



On Tue, Sep 20, 2011 at 06:06:26PM +0300, Oleksandr Gavenko wrote:
> >>Есть как бы притензия по поводу того, что заранее знать о поломке
> >>совместимости нет возможности... Ведь пакет foo создавали когда
> >>bar_2.1 еще не вышло.
> >Перезальёте.
> >
> Напомню моделируемую ситуацию - пакет foo уже установлен в старой
> версии.
> 
> Если он перезаливается - то версия увеличивается... но это никак не
> предоставит информацию о несовместимости старой инстяляции и обновленной
> версии стороннего пакета bar.
Предоставит, когда новый foo приедет дистапгрейдом.

> Логично что о несовместимости можно сообщить в новой версии bar.
> Но это влечет за собой необходимость матейнеру bar тестировать все
> пакеты, которые зависят от bar, что, мне кажется, никто не делает...
Ну bar перезальёте после первого репорта о несовместимости, какая разница.

> > У bar при смене soname (поломке обратной совместимости) должно полностью
> > меняться имя пакета. Плюс новый не должен пересекаться со старым по
> > файлам. Это позволяет иметь установленными две версии libbar, пока весь
> > софт не переедет на новую
> >
> > http://www.debian.org/doc/debian-policy/ch-sharedlibs.html
> >
> Кажется это и есть "правильное" решение.
Нет.
Для shared libs это *правильное* решение.
Для остальных пакетов, конечно, даже не "правильное".

> Для любителей http://semver.org/ можно major помещать в имя пакета
> как например:
> 
>   python2.5 python2.6 emacs21 emacs22 emacs23
Это особые случаи, как правило особым образом поддерживающие возможность
параллельной установки. Делать так для произвольного софта - жуткий
оверкилл.

> Еще вижу заковырку когда некий пакет объявляет зависимость *только* от
> виртуального пакета. Т.к. имя виртуалного пакета не меняется
> (ведь его назначение говорить о наличии в системе неких "возможностей"),
> то
> 
>   Require: emacs (>= 21.4)
It doesn't work this way.

http://www.debian.org/doc/debian-policy/ch-relationships.html#s-virtual


> может привести к поломке пакета, если, например, объявленая depreciate
depreciate != deprecated

> Как выход вижу более явно описывать зависимости:
> 
>   Require: emacs21 | emacs22 | emacs23
Да, так и делайте, если охота.

-- 
WBR, wRAR

Attachment: signature.asc
Description: Digital signature


Reply to: