rpm:列出像dpkg-shlibdeps这样不必要的依赖项吗?

时间:2019-03-06 18:02:44

标签: rpm rpmbuild dpkg

在构建.deb程序包时,{(3)}可以(或可以被调用)自动添加对程序包所使用库的依赖。

它会产生有用的输出,例如:

dpkg-shlibdeps: warning: package could avoid a useless dependency if ./foo.so were not linked against libboost_regex.so.1.62.0 (they use none of the library's symbols)

转速是否具有等效功能?或已有的平台无关工具?

1 个答案:

答案 0 :(得分:0)

我有一个部分答案。

RPM不直接支持此功能。 RPM查找软件包需要什么,并通过脚本find-requiresfind-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如何做到? 如果没有人首先到达那里,我会花时间去研究它。