如何列出依賴特定函式庫的RPM套件?

如何列出依賴特定函式庫的RPM套件?

我想確定我的 Fedora 25 系統上的哪些 RPM 套件依賴於庫libLLVM-3.8.solibclang-3.8.so.我如何能?

答案1

您可以使用dnf repoquery它來查找。例如:

dnf repoquery --whatrequires libLLVM-3.8.so

然而,在 x86_64 系統上,這可能無法達到您想要的效果;指定庫的 x86_64 版本(可能是你想要什麼),添加()(64bit),像這樣:

dnf repoquery --whatrequires 'libLLVM-3.8.so()(64bit)' 

'現在有必要防止括號混淆 bash。)

預設情況下,這會列出可用的和已安裝的軟體包;若要限制為目前安裝的,請新增該--installed標誌,如下所示:

dnf repoquery --whatrequires 'libLLVM-3.8.so()(64bit)'  --installed

在我的系統上,返回:

llvm-libs-0:3.8.0-1.fc25.x86_64
mesa-dri-drivers-0:13.0.2-2.fc25.x86_64
mesa-libxatracker-0:13.0.2-2.fc25.x86_64

如果您只想要套件名稱,請新增--queryformat '%{name}\n'. (用於dnf repoquery --querytags取得其他格式選項。)

答案2

$ locate libLLVM-3.8.so
/usr/lib/libLLVM-3.8.so
/usr/lib64/libLLVM-3.8.so
$ rpm -qf /usr/lib64/libLLVM-3.8.so
llvm-libs-3.8.0-1.fc25.x86_64
$ sudo rpm -e --test llvm-libs-3.8.0-1.fc25.x86_64
error: Failed dependencies:
        libLLVM-3.8.so()(64bit) is needed by (installed) clang-libs-3.8.0-2.fc25.x86_64
        libLLVM-3.8.so()(64bit) is needed by (installed) mesa-dri-drivers-13.0.2-2.fc25.x86_64
        libLLVM-3.8.so()(64bit) is needed by (installed) mesa-libOpenCL-13.0.2-2.fc25.x86_64
        libLLVM-3.8.so()(64bit) is needed by (installed) mesa-libxatracker-13.0.2-2.fc25.x86_64

其他文件也類似。或任何文件。

相關內容