08.10.2010 21:38, Alexey Tourbin пишет: > On Fri, Oct 08, 2010 at 06:52:50PM +0400, Aleksey Avdeev wrote: >> 05.10.2010 00:41, Alexey Tourbin пишет: >>> Ничем не замечателен, для постоянных посетителей заведения >>> всё должно пройти незаметно.-) >>> >>> Предыдущий релиз rpm уже генерировал зависимости вида >>> Provides: libfoo.so.1 = set:7f0252c3... >>> >>> Теперь же генерируются и зависимости >>> Requires: libfoo.so.1 >= set:3f5b289c... >>> а это делает процесс необратимым. >>> >>> Т.н. set-версии позволяют проверить совпадение библиотечных функций, >>> используемых в программе, и экспортируемых функций библиотеки. Но это >>> совпадение - не прямое равенство, а подмножество. Отсюда весь сыр-бор. >> >> Правильно понимаю, что это позволит исключить ситуации когда программа >> и подгружаемый плагин (например apache и его модуль) слинкованы >> несовместимыми версиями некой библиотеки? > > Смотря что понимать под разными версиями библиотеки. Библиотеки с разными > сонеймами считются разными библиотеками. И если, например, программа > слинкована с libdb4.7, а плагин слинкован с libdb5.x, то на уровне > зависимостей сделать что-либо очень сложно, чтобы предотвратить такую > ситуацию. Именно эта ситуация меня и волнует... (Т. к. уже нарывался на такую мину в apache2). Пока мысли крутятся вокруг следующего: У нас используются зависимости на библиотеки вида .so.. Если каким-то образом, при установке пакета, проверять что в его зависимостях и зависимостях его зависимостей каждый из присутствует с одним -- задача будет решена. (Возможно, для практических целей, можно ограничится только одним уровнем рекурсии.) -- С уважением. Алексей.