python - ubuntu软件中心如何进行 "search"操作?

标签 python linux ubuntu package-managers

我想在 Ubuntu 中开发一个软件中心。在ubuntu软件中心中,当我们输入关键字并点击回车按钮时,它会向我们显示相关结果。例如,当我搜索“eclipse”关键字时,ubuntu 软件中心列出了 5 个结果。

我想在我的软件中心中执行类似的功能。

我尝试通过使用 bash 命令(apt search package_name)在 apt 包管理器中进行搜索来解决这个问题,但它给出了所有包作为结果,大约超过 100 个包。

ubuntu软件中心和其他软件中心如何搜索关键字?他们在哪里搜索关键字并检索结果? ubuntu软件中心的源代码太复杂了,我找不到我需要的东西。任何指导将不胜感激。

编辑

我分析了ubuntu软件中心的所有源代码。这些代码包含了太多的技术,很难理解。为了理解这些代码,我必须学习很多技术,可能至少需要一个月的时间,也许这个时间可能不够。我花了这么多时间学习这些技术,如果这些技术不能解决我的问题怎么办?我只知道python,我不熟悉操作系统库等,而且我的时间有限,请指导我。我需要构建一个简单的软件中心,而不是复杂的软件中心。

提前致谢。

最佳答案

它是开源的,甚至可能使用 Python。

要了解安装软件中心的软件包:

$ apt-file find -F /usr/bin/software-center
software-center: /usr/bin/software-center

下载源代码:

$ mkdir software-center
$ cd software-center/
$ apt-get source software-center

在源代码中查找“搜索”一词。 utils/search_query.py 似乎相关。看起来它使用 xapian模块来完成实际工作。它查询 /var/lib/apt-xapian-index/index xapian 数据库等。

关于python - ubuntu软件中心如何进行 "search"操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28987193/

相关文章:

python - 为什么 float64 允许 NA,而 int32 不允许?

python - pyodbc - ODBC 连接不工作

python - Oracle 数据插入提升 'ascii' 编解码器无法在位置 87 : ordinal not in range(128) error 中编码字符 '\xea'

python - 如何使用 sudo 运行 jupyterhub。错误: commad not found

python - 在实现二叉搜索树时,Python 中的最大递归深度超出了错误

linux - 连接字符串之间的行 - bash

ruby - 如何等待进程完成使用 IO.popen?

linux - .inputrc 覆盖 Control+W

android - 如何在 Linux 服务器(Ubuntu)上安装 Android 命令行工具

node.js - 在不重启的情况下杀死nodejs进程