On Tue, Jan 17, 2006 at 04:54:31AM +0300, Dmitry V. Levin wrote: > On Tue, Jan 17, 2006 at 04:34:13AM +0300, Mikhail Zabaluev wrote: > [...] > > expat-2.0.0-alt2 с рекомендованными исправлениями отправлен в Sisyphus. > > Однако я обнаружил проблему при обновлении с expat-1.95.8-alt2: старый > > симлинк libexpat.so.0 почему-то не заменяется новым и все клиенты > > перестают запускаться. После еще одного rpm -i --force симлинк встал на > > место. > > Это явление известно давно и имеет простое объяснение. > > Достаточно мысленно разбить обновление libexpat на этапы: > 1. все файлы нового пакета установлены; в этот момент libexpat.so.0 > указывает на новую библиотеку; > 2. ldconfig из %post нового пакета выполнен; в этот момент libexpat.so.0 > снова указывает на старую библиотеку; Почему ldconfig переставляет симлинк на старую библиотеку? Что есть "старая библиотека" в понимании ldconfig? > 3. все файлы старого пакета удалены; в этот момент libexpat.so.0 является > битой ссылкой. > В результате ссылка остаётся битой. Что нам остаётся? %triggerpostun. > > > -- > ldv