我使用的是最小的 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
;可执行文件始终位于 abin
或sbin
目录中。当您找到所需内容时:
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,还有其他搜索选项。