On Tue, May 16, 2006 at 03:46:31PM +0400, Sergey Vlasov wrote: > ldconfig при наличии нескольких библиотек с одинаковым soname выбирает из > них библиотеку с наибольшей версией. В данном случае это правило даёт > неверный результат. [...] > Во время выполнения %postun файлы предыдущих версий пакета ещё не удалены, > а в данном случае ldconfig выбирает библиотеку из старой версии. > > Можно добавить %triggerpostun на предыдущие версии пакета, в котором ещё > раз вызвать %postun_ldconfig; при этом ссылка будет исправлена, но между > удалением старых файлов и выполнением %triggerpostun будет промежуток > времени, когда ссылка будет указывать на несуществующий файл. Поправка: в триггере придётся писать %post_ldconfig - %postun_ldconfig определяет, что производится не удаление, а обновление пакета, и при обновлении просто ничего не делает (поскольку предполагается, что переустановка ссылки на новую версию библиотеки была выполнена в %post_ldconfig, запущенном в post-скрипте новой версии). Кстати, такое поведение %postun_ldconfig может приводить к проблемам при необходимости по каким-либо причинам откатиться на старую версию пакета: %post_ldconfig в устанавливаемой старой версии всё равно ставит ссылку на новую версию библиотеки, %postun_ldconfig в удаляемой новой версии ничего не делает, в результате ссылка остаётся битой, и для исправления ситуации приходится вызывать ldconfig вручную.