У меня есть частичный ответ.
RPM не поддерживает это напрямую.
RPM находит то, что требует пакет, и предоставляет его через скрипты find-requires
и find-provides
, обычно в /usr/lib/rpm.
Они выполняются следующим образом:
>find . | /usr/lib/rpm/find-provides
libfoobar.so.1()(64bit)
>find . | /usr/lib/rpm/find-requires
libasound.so.2()(64bit)
libboost_atomic-mt.so.1.53.0()(64bit)
libboost_chrono-mt.so.1.53.0()(64bit)
libboost_date_time-mt.so.1.53.0()(64bit)
libboost_filesystem-mt.so.1.53.0()(64bit)
libboost_regex-mt.so.1.53.0()(64bit)
libboost_system-mt.so.1.53.0()(64bit)
libboost_thread-mt.so.1.53.0()(64bit)
libboost_unit_test_framework-mt.so.1.53.0()(64bit)
libc.so.6()(64bit)
libc.so.6(GLIBC_2.14)(64bit)
Существует также скомпилированная программа / usr / lib / rpm / elfdeps, которая работает так же. Кажется, что rpmbuild использует это, а не сценарии.
См. http://ftp.rpm.org/max-rpm/s1-rpm-depend-auto-depend.html (обратите внимание, что настоящие сценарии не очень похожи на приведенный там пример).
Оставшаяся часть вопроса - как это делает dpkg-shlibdeps?
Я добавлю это, когда найду время разобраться, если никто не придет туда первым.