之前的一个问题,我如何找出哪个包拥有某个文件?询问了有关基于 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
部分中列出,则在安装包之前无法找到它。