首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从命令行获得存储库部分中所有包的列表?

如何从命令行获得存储库部分中所有包的列表?
EN

Ask Ubuntu用户
提问于 2014-05-20 13:37:11
回答 3查看 2.3K关注 0票数 14

在Synaptic中,可以按节列出包。例如,在下面的图片中,列出了“业余无线电(宇宙)”部分的所有软件包。

如何在命令行获得这样的列表(编辑:使用包描述)?

我需要一个原始列表;像aptitude这样的终端应用程序是不行的。

EN

回答 3

Ask Ubuntu用户

回答已采纳

发布于 2014-05-28 15:31:51

嗯,虽然你说你不想因为输出而使用天赋,但是你需要知道你可以修改它来得到你喜欢的东西:

代码语言:javascript
复制
aptitude -F'|%p|%d|' search '?section(hamradio)'

诀窍在于修改输出格式的-F开关。%p的意思是包。当包具有不同的体系结构(即amd64和i386),以及输出描述的%d时,这也会输出。您可以更多地个性化搜索模式,例如,没有安装包:

代码语言:javascript
复制
aptitude -F'|%p|%d|' search '?section(hamradio) !~i'

其中~i的意思是已安装,而!是not,因此它读为"not (!) installed (~i)",或者如果您只想要那些对您的体系结构可用的:

代码语言:javascript
复制
aptitude -F'|%p|%d|' search '?section(hamradio) ~r native'

~r?architecture(),它与包的体系结构相匹配,native只列出与系统具有相同体系结构的结构,相当于dpkg --print-architecture

因此,可以将前一行写得更简洁,如:

代码语言:javascript
复制
aptitude -F'|%p|%d|' search '~s hamradio ~r native'
票数 5
EN

Ask Ubuntu用户

发布于 2014-05-20 15:26:17

确保dctrl-工具

已安装软件包。它为搜索apt和dpkg包列表提供了有用的命令。若要从可用apt安装的特定部分获得所有包的完整描述,请运行

代码语言:javascript
复制
grep-aptavail -F Section hamradio

这将显示hamradio部分中每个包的完整包元数据。如果您只想看到包名,请运行

代码语言:javascript
复制
grep-aptavail -n -F Section -s Package hamradio

如果您的系统是为多重架构设置的,如果该包是为一个以上的体系结构构建的,那么这个包可能会在这个清单中显示不止一次。因此,要进一步完善这一点,请使用

代码语言:javascript
复制
grep-aptavail -n -F Section -s Package hamradio | sort | uniq

代码语言:javascript
复制
grep-aptavail -n -F Section -s Package hamradio | sort -u

若要对包列表进行排序并删除具有相同名称的重复包,请执行以下操作。

请注意,您必须使用该部分的实际名称,这与Synaptic在GUI中显示的“人类可读的”名称不同。例如,上面的搜索使用节名hamradio而不是Synaptic中显示的字符串“业余无线电”。

有关所有选项和一些示例的完整说明,请参见grep-aptavail手册页。

票数 11
EN

Ask Ubuntu用户

发布于 2014-05-21 00:12:28

单行上的更多字段,带有任意分隔符

下面一行将打印存储库部分的所有唯一包名,以及它们的描述,每一行都在一行上。所有字段都由管道字符分隔,即准备转换为减价管台结果表可以在我的网站上找到。

代码语言:javascript
复制
grep-aptavail -n -s Package,Description -F Section hamradio |paste -sd '||\n' |sed 's:^:|:' |sort -u
票数 3
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/469612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档