On Tue, May 16, 2006 at 06:32:41PM +0400, Sergey Vlasov wrote: > 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 вручную. Да, конечно. Можно отключить эту оптимизацию в %postun_ldconfig, если проблема кажется реальной. Какие ещё есть предложения? -- ldv