我经常知道我需要的命令行程序的名称,但不知道提供该程序的软件包的名称。如何找到包含我需要的程序的软件包的名称?在基于 RPM 的系统上,他们有一个选项whatprovides
可以rpm -q --whatprovides /usr/X11R6/bin/xclock
找到正确的软件包。基于 Debian 的系统有类似的功能吗?
答案1
如果软件包已安装,则需要dpkg -S /path/to/file
。如果软件包未安装,则使用 apt-file 实用程序 ( apt-file update; apt-file search /path/to/file
)。
答案2
Ubuntu 有一个命令未找到实用程序,它会告诉您需要安装哪个包才能获取特定命令。如果配置正确(可能是在默认安装中?),它会在您输入未安装的命令时显示。但是,您也可以手动运行它:
$ /usr/lib/command-not-found --ignore-installed test
The program 'test' is currently not installed. You can install it by typing:
sudo apt-get install coreutils
答案3
Ubuntu 和 Debian 一样,都自带 apt-file 应用程序。它允许您搜索软件包中的文件,与 apt-get 非常相似。
因此,你会
$ apt-file update
$ apt-file search xclock
就这样。如果你够幸运的话,你也可以使用Debian 软件包网站。如果 Ubuntu 维护人员与原始 Debian 版本相比没有做太大的更改,那么这将有效。
答案4
您可以使用 Nala(apt 上的前端)。nala 搜索“应用程序名称”。Nala 将返回包名称。