如何在 packages.ubuntu.com 上查找以给定字符串开头的包?

如何在 packages.ubuntu.com 上查找以给定字符串开头的包?

我试图找到一个名为 的包libkf5kjs-dev。现在我知道了包的确切名称,但是当我进入搜索页面时packages.ubuntu.com我只知道它以字符串开头libkf5。如果我在关键字字段中输入以下内容:

在此处输入图片描述

然后按"Search",我得到很多结果,但没有一个匹配 libkf5kjs-dev。我这里漏掉了什么?我应该如何搜索才能得到正确的包?

答案1

Web 界面

如果你仔细观察,你会看到一条消息:

您的关键字过于笼统,出于优化原因,部分结果可能被抑制。请考虑使用更长的关键字或更多关键字。

搜索libkf5k你就会找到libkf5kjs-dev

原因

由于这些类型的查询很容易被用来对数据库发起类似 DoS 的攻击,因此 Web 界面不支持它们。


命令行界面

您还可以使用命令行搜索专门针对您的 Ubuntu 版本的软件包(使用正则表达式):

$ apt-cache search --names-only ^libkf5 | grep js | grep dev
libkf5jsembed-dev - Embedded JS library for Qt
libkf5kjs-dev - Support for JS scripting in Qt applications

答案2

运行“libkf5”搜索关键字packages.ubuntu.com返回:

您的关键字过于笼统,出于优化原因,部分结果可能被抑制。请考虑使用更长的关键字或更多关键字。

该网站的搜索结果数量似乎有上限。我建议改用apt-file(使用 安装sudo apt install apt-file)来返回所有可能的结果:

$ apt-file search libkf5 | grep libkf5kjs-dev
libkf5kjs-dev: /usr/share/doc/libkf5kjs-dev/changelog.Debian.gz
libkf5kjs-dev: /usr/share/doc/libkf5kjs-dev/copyright
libkf5kjs-dev: /usr/share/lintian/overrides/libkf5kjs-dev

您可以在哪里找到它libkf5kjs-dev

答案3

如果你不介意打开一个大约 1.2MB 的网页,可以在以下位置查看给定版本的完整软件包列表:https://packages.ubuntu.com。 例如:https://packages.ubuntu.com/xenial/allpackages?format=txt.gz 然后,只需使用浏览器的搜索功能即可。

答案4

如果你不介意把所有内容都包括在你source.list通配符就像是这可能有效:

apt list "libkf5*"

apt search将包括包装描述,有时这是不需要的:

列表- 根据包名称列出包
搜索- 在包描述中搜索
展示- 显示包裹详情
安装- 安装软件包
重新安装- 重新安装软件包
消除- 删除软件包
自动移除- 自动删除所有未使用的包
更新- 更新可用软件包列表
升级- 通过安装/升级软件包来升级系统
全面升级- 通过删除/安装/升级软件包来升级系统
編輯源- 编辑源信息文件
满足- 满足依赖字符串

相关内容