rpm - rpm:列出不必要的依赖项,例如 dpkg-shlibdeps 吗?
问题描述
在构建 .deb 包时,会(或可以)调用dpkg-shlibdeps以自动添加对包使用的库的依赖项。
它产生有用的输出,例如:
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)
rpm 是否有等效功能?还是预先存在的平台中立工具?
解决方案
是和不是:)
rpmbuild 自动添加 .so 依赖项。
您可以检查该rpm -qR bash
列表此要求:
...
libc.so.6(GLIBC_2.11)(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.15)(64bit)
...
但正如您在来源中看到的那样:https ://src.fedoraproject.org/rpms/bash/blob/master/f/bash.spec没有这样的行:
Requires: libc.so.6(GLIBC_2.11)(64bit)
这适用于 .so 库、Perl 模块以及最近在 Fedora for Python 模块中。任何其他库都必须手动添加到规范文件中。
但是,这些依赖关系是在链接库上计算的,如果您链接到该库,但不使用该库中的任何符号,那么恐怕 RPM 世界没有任何实用程序来检测这种无用的依赖关系。
推荐阅读
- c# - Attachment 类中 System.Net.Mime.MediaTypeNames 的意义是什么?
- android - 同一适配器中的多个布局管理器
- android - Android 设备,通过 Wi-Fi 连接到相机,必须通过 3G/4G 进行 RESP API 调用
- c - 长按GTK
- r - R匹配模式:向量和列
- php - PHP MySQLi 中的多个搜索选项卡
- php - 传递给 PHP URL 时 AJAX 成功不起作用
- multithreading - netty:是否在 channelRead() 之前调用了连接侦听器?
- plsql - 如何在 Oracle Apex 中循环 G_FXX,其中 XX = (01,02..n)?
- three.js - Fbx 颜色不显示在 3 js 编辑器中