如何列出依赖于特定库的 RPM 包?

Jos*_*nto 4 fedora rpm libraries

我想确定 Fedora 25 系统上哪些 RPM 包依赖于库libLLVM-3.8.solibclang-3.8.so. 我如何能?

mat*_*tdm 5

你可以用它dnf repoquery来找到这个。例如:

dnf repoquery --whatrequires libLLVM-3.8.so
Run Code Online (Sandbox Code Playgroud)

但是,在 x86_64 系统上,这可能无法满足您的要求;要指定库的 x86_64 版本(这可能您想要的),请添加()(64bit),如下所示:

dnf repoquery --whatrequires 'libLLVM-3.8.so()(64bit)' 
Run Code Online (Sandbox Code Playgroud)

'现在有必要防止括号混淆bash。)

默认情况下,这会列出可用和已安装的软件包;要限制为当前安装的那些,请添加--installed标志,如下所示:

dnf repoquery --whatrequires 'libLLVM-3.8.so()(64bit)'  --installed
Run Code Online (Sandbox Code Playgroud)

在我的系统上,返回:

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
Run Code Online (Sandbox Code Playgroud)

如果您只需要包名称,请添加--queryformat '%{name}\n'. (dnf repoquery --querytags用于获取其他格式选项。)