On Tue, May 16, 2006 at 07:28:10PM +0400, Dmitry V. Levin wrote: > > > Во время выполнения %postun файлы предыдущих версий пакета ещё не удалены, > > > а в данном случае ldconfig выбирает библиотеку из старой версии. > > > > > > Можно добавить %triggerpostun на предыдущие версии пакета, в котором ещё > > > раз вызвать %postun_ldconfig; при этом ссылка будет исправлена, но между > > > удалением старых файлов и выполнением %triggerpostun будет промежуток > > > времени, когда ссылка будет указывать на несуществующий файл. > > > > Поправка: в триггере придётся писать %post_ldconfig - %postun_ldconfig > > определяет, что производится не удаление, а обновление пакета, и при > > обновлении просто ничего не делает (поскольку предполагается, что > > переустановка ссылки на новую версию библиотеки была выполнена в > > %post_ldconfig, запущенном в post-скрипте новой версии). > > > > Кстати, такое поведение %postun_ldconfig может приводить к проблемам при > > необходимости по каким-либо причинам откатиться на старую версию пакета: > > %post_ldconfig в устанавливаемой старой версии всё равно ставит ссылку на > > новую версию библиотеки, %postun_ldconfig в удаляемой новой версии ничего > > не делает, в результате ссылка остаётся битой, и для исправления ситуации > > приходится вызывать ldconfig вручную. > > Да, конечно. Можно отключить эту оптимизацию в %postun_ldconfig, если > проблема кажется реальной. Какие ещё есть предложения? Проблема кажется реальной. Я время от времени тестирую новые сборки "вижвую" и потом иногда откатываю на старые сборки. Наступал на эти грабли несколько раз.