我的意思是搜索在网上对于具有多个搜索词及其之间的逻辑运算符的 ubuntu 包。
例如,我想搜索包含以下内容的 20.04vnc
软件包server
:描述。
所以我去https://packages.ubuntu.com,输入相应的参数,这需要我这里。但这也会发现 VNC 客户端/查看器,例如
directvnc 软件包
- 焦点(20.04LTS)(杂项):VNC 客户端使用帧缓冲区作为显示器[宇宙]
0.7.7-1build1:amd64 arm64 armhf ppc64el s390x
甚至其他描述中不包含或的包vnc
,例如server
邮件堆栈交付包
- 焦点(20.04LTS)(邮件):过渡方案[宇宙]
1:2.3.7.2-1ubuntu3.3 [安全]: 全部软件包 maas-dhcp
- focal(20.04LTS):虚拟包
由 maas 提供
那我就不知道了:
- 搜索结果中包含哪些包?
- 如何仅过滤包含
vnc AND server
描述的内容?这只是我想要进行的搜索类型的一个示例。
笔记:
- 在示例中,我的意思是执行不区分大小写的搜索。我不知道在哪里指定它,但显然它无论如何都是适用的。
- 这描述就是上面三个包中斜体显示的内容。
- 如果在 CLI 中使用
apt-cache show mail-stack-delivery
,则Description
显示一行,其中包含与上面斜体相同的文本。然后会显示更详细的描述,但没有vnc
或server
。 - 我找到了一个明显的 CLI 解决方案
apt-cache search ".*" | grep -i vnc | grep -i server
。我至少遇到过一种不令人满意的情况:如果我不在 Ubuntu 机器前,而我想为另一个不了解 Ubuntu 的人整理一套说明。在这种情况下,我需要在线搜索。
答案1
本地阅读man apt-cache
或在线的给出了有趣的引述:
apt-缓存对 APT 的包缓存执行各种操作。......
搜索
search regex
对
所有可用的包列表执行全文搜索
......
可以使用单独的参数来指定多个搜索模式和'在一起。
因此您可以在本地使用以下语法:
简单的
vnc
和server
:apt-cache search vnc server
(在我的 Ubuntu MATE 18.04 LTS 上它给出了 51 个包名称)
通过添加引号可以缩小结果范围
apt-cache search "vnc server"
(给出 23 个结果)
有关regex
语法,请参阅man 7 regex
本地或在线的。