在 Debian 中如何找到包含程序的软件包?

在 Debian 中如何找到包含程序的软件包?

我使用的是最小的 Debian 系统,没有top安装该程序。我尝试使用 来安装 top sudo apt-get install top,但top不是包名称。

看起来这top是其他软件包的一部分。我如何才能找到应该安装哪个软件包才能获得它?更一般地说,我如何才能找到包含程序的软件包?

答案1

直接的答案是procps。您可以通过以下方法自行找到答案:

# Install apt-file, which allows you to search
# for the package containing a file
sudo apt-get install apt-file

# Update the package/file mapping database
sudo apt-file update

# Search for "top" at the end of a path
apt-file search --regexp '/top$'

最终命令的输出应如下所示:

crossfire-maps: /usr/share/games/crossfire/maps/santo_dominion/magara/well/top
crossfire-maps-small: /usr/share/games/crossfire/maps/santo_dominion/magara/well/top
liece: /usr/share/emacs/site-lisp/liece/styles/top
lxpanel: /usr/share/lxpanel/profile/two_panels/panels/top
procps: /usr/bin/top
quilt: /usr/share/quilt/top

您可以看到它仅procps在标准路径中提供了一个可执行文件,这表明它可能是正确的。您还可以了解更多信息,procps以确保它看起来是正确的:

$ apt-cache show procps
Package: procps
Version: 1:3.3.3-3

[...]

Description-en: /proc file system utilities
 This package provides command line and full screen utilities for browsing
 procfs, a "pseudo" file system dynamically generated by the kernel to
 provide information about the status of entries in its process table
 (such as whether the process is running, stopped, or a "zombie").
 .
 It contains free, kill, pkill, pgrep, pmap, ps, pwdx, skill, slabtop,
 snice, sysctl, tload, top, uptime, vmstat, w, and watch.

答案2

您可以使用 搜索内容apt-cache search ...,尽管它只是包名称和描述的匹配,有时这还不够。在这种情况下使用,例如,

apt-file search top

可能会起作用——它会找到名称中包含文件的所有包top,但这有点滑稽(它包括setopt.desktop等)。根据克里斯的回答完善这一点:

apt-file search --regexp 'bin/top$'

这将找到文件路径结尾的包(“$”是注册乌拉尔经验值反应表示结束的语法) in bin/top;可执行文件始终位于 abinsbin目录中。当您找到所需内容时:

apt-get install whatever

在这种情况下whatever显然是procps

答案3

apt-file 搜索 /etc/apt/sources.list 中列出的所有存储库和相关数据库,只要存储库提供内容-%architecture%.gz。

如果认为感兴趣的文件是可执行文件名称“top”,请使用此正则表达式。 '^/(usr/)?s?bin/top$'

对于官方 Debian 存储库,有一个 Web 界面https://packages.debian.org/file:top,还有其他搜索选项。

相关内容