如何知道 SUSE 中哪个包拥有某个文件?

如何知道 SUSE 中哪个包拥有某个文件?

之前的一个问题,我如何找出哪个包拥有某个文件?询问了有关基于 Debian 的软件包管理的问题。我对 SUSE Enterprise 10 也有同样的疑问,使用 YaST(或任何其他适合该任务的工具)。

我正在寻找类似于apt-file或的东西yum whatprovides

答案1

对于基于 rpm 的发行版:

rpm -qf /path/to/file

返回包name-version-release.arch字符串

例如:

mimi@argusek ~  $ rpm -qf /usr/bin/aclocal
automake-1.15-4.6.noarch

在基于 SUSE 的发行版中:

zypper search -f string

在包中的文件列表中搜索字符串的一部分

答案2

对我来说这是可行的:

代码:

# zypper se --file-list gl3.h
Loading repository data...
Reading installed packages...

S  | Name                 | Summary                                | Type
---+----------------------+----------------------------------------+--------
i+ | Mesa-libGLESv3-devel | Файлы разработки для API OpenGL ES 3.x | package

但是,如果未安装包含该文件的包,则上述所有操作均不起作用:

# zypper se --file-list --match-substrings gl3.h
Loading repository data...
Reading installed packages...
No matching items found.

因此,如果文件未在provides部分中列出,则在安装包之前无法找到它。

相关内容