[devel] %post-script prerequisites

Dmitry V. Levin =?iso-8859-1?q?ldv_=CE=C1_altlinux=2Eorg?=
Ср Сен 24 23:28:41 MSD 2008


On Wed, Sep 24, 2008 at 03:43:54PM +0000, Alexey Tourbin wrote:
> On Wed, Sep 24, 2008 at 05:16:13PM +0400, Dmitry V. Levin wrote:
> > On Wed, Sep 24, 2008 at 12:37:26PM +0000, Alexey M. Tourbin wrote:
> > > Когда в %post-скрипте пакета запускается программа, запакованная
> > > в сам этот пакет, тогда некоторые зависимости Requires пакета нужно
> > > продублировать в Requires(post).  Например, если в пакете libgtk+2
> > > запускается программа gkt-update-icon-cache, то должна появиться
> > > зависимость на новый пакет glib2 вида
> > > Requires(post): libglib-2.0.so.0(GLIB_2.18).
> > 
> > Зачем должна появляться такая зависимость?
> 
> 1) пакет foo содержит программу /usr/bin/update-foo.
> 2) /usr/bin/update-foo запускается в %post-срипте пакета foo.
> 3) зависимость Requires(post): /usr/bin/update-foo естественным
> образом оптимизируется (*), потому что на стадии выполнения %post-скрипта
> файл /usr/bin/update-foo уже распакован (в любом случае, эта зависимость
> ничего не дала бы).
> 4) файл /usr/bin/update-foo слинкован с libglib-2.0.so.0(GLIB_2.18).
> 
> Тогда rpm имеет право установить/обновить пакет glib2 после пакета foo.
> Остается полагаться на топологическую сортировку пакетов при установке
> или обновлении, но она может не сработать (rpm всё ещё имеет право
> переупорядочить пакеты невыгодным нам образом), и тогда %post-скрипт
> обломится.

rpm пытается упорядочить установку пакетов согласно зависимостям.
Невыгодное упорядочение может возникнуть только в случае, если имеет
место цикл зависимостей, который был разорван неудачно.  Насколько
это реально, в применении к описываемой ситуации с %post-скриптом?


-- 
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 197 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20080924/80276bd5/attachment-0002.bin>


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