如何从命令行搜索可用的软件包?


584

当我事先知道这些软件包可用时,我已经使用命令行“ sudo apt-get install ...”成功安装了一些软件包。但是,我如何搜索或获取存储库中可用资源的列表?

Answers:


728

要通过名称或描述搜索特定的软件包:

在命令行中,使用:

apt-cache search keyword

其中搜索关键字可以是软件包名称的全部或一部分,也可以是其描述中使用的任何单词。

例如,同时apt-cache search proxy包含以下两个程序包:

微型代理 -轻量级,非缓存,可选匿名的HTTP代理
tircd- twitter API的
 ircd 代理

注意:列表可能很长,因此您可以通过管道传递输出less,使其一次可滚动一行或一个屏幕,即apt-cache search something | less

获取所有软件包的列表

apt-cache search .

如果启用了X转发或在桌面上使用Synaptic

Synaptic通常是一种更方便的方法,但是至少需要一台X服务器(除非您正在运行桌面环境)。sudo apt-get install synaptic必要时安装。

  • 通过X转发在ssh'd服务器上的突触:

    在此处输入图片说明

  • 在Ubuntu桌面上本地运行的Synaptic:

    在此处输入图片说明


@MarkThomas也可以尝试apt-cache policy,它为您提供有关来源的更多信息。
yclian 2015年

像一样apt-get,您可以apt-cache不带任何参数地运行,并获得简短的帮助/备忘单信息。您可以随时阅读手册页以获得更多帮助。(ie man apt-cache
pd12

假设我很愚蠢,想将结果放入其中apt install,是否有一种聪明的方法?该函数的输出混乱。可以使用每一行的第一个单词,但是应该有一种更简单的方法。
Deleet '16

您也可以在线搜索。packages.ubuntu.com
activedecay

如果您只需要所有可用软件包的名称,请执行apt-cache pkgnames
flaz14 '18

42

使用aptitudeapt-cache和会apt以不同方式格式化输出。(sudo在搜索软件包时,这些都不要求使用。)apt出于可读性,我更喜欢使用。它突出显示了软件包名称,并在不同的软件包之间放置了一个空格。它还已[installed]列出每个已安装的软件包的旁边。用法:

apt search package-name

2
如果我运行说'$ apt search firefox',它会产生大量的输出结果:(
user3804598 '18

您可以使用类似以下方法来缩小搜索范围:apt search firefox | grep -A 3 firefox
jbrock '18

1
缩小搜索范围的另一种选择:apt search ^firefoxapt search ^firefox$
jbrock

25

您还可以从命令行使用aptitude:

aptitude search xxxxxx

2
关于这一点的恼人之处在于,Ubuntu在默认情况下似乎并未将其提供给您。直到了解为止apt-cache,我一直apt-get install aptitude在安装的每个新盒子上都这样做。但是,由于我找不到方法向apt-cache我展示它是否已安装,我想我将不得不继续这样做:-)

2
@paxdiablo只需创建两行shell脚本(类似第二行dpkg --list | grep "$1")或将shell函数添加到您的效果中即可.bash_login... :-)
FooF

5

apt-cache命令行工具用于搜索apt软件包缓存。简而言之,该工具用于搜索软件包,收集软件包信息,还用于搜索准备在基于Debian或Ubuntu的系统上安装的可用软件包。

要在安装之前找出软件包名称及其描述,请使用“搜索”标志。将“搜索”与apt-cache一起使用将显示简短说明的匹配软件包列表。假设您想找出软件包“ vsftpd”的描述,然后输入命令。

句法:

apt-cache search SearchTerm
$ apt-cache search vsftpd

可能的输出为:

vsftpd - lightweight, efficient FTP server written for security
ccze - A robust, modular log coloriser
ftpd - File Transfer Protocol (FTP) server
yasat - simple stupid audit tool

要查找并列出所有以“ vsftpd”开头的软件包,可以使用以下命令。

$ apt-cache pkgnames vsftpd

您可能还希望通过更多甚至grep来运行结果。例如:

apt-cache search firefox | grep plugin

3

假设您要在终端上执行所有操作,请使用以下命令:

首先,我建议您更新软件包索引文件,以便要创建的存储库中所有文件的列表都是最新的

sudo apt-get update

然后使用“ 搜索正则表达式”功能,apt-cache其中“正则表达式”代表正则表达式,是提供给搜索的模式。有关搜索模式的更多信息,您可以通过命令man 7 regex英语查找手册regex(7)。等于的正则表达式变量 就足够了。

apt-cache search .

上面的内容将为您提供所有结果,但并不是按任何顺序对浏览特别有用。

因此,最后我们可以使用来按字典顺序排序,sort -d并使用一次只显示一页less

apt-cache search . |sort -d |less
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.