在构建.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)
转速是否具有等效功能?或已有的平台无关工具?
答案 0 :(得分:0)
我有一个部分答案。
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如何做到? 如果没有人首先到达那里,我会花时间去研究它。