扫描并获取 Ubuntu 上安装的软件包以及版本

扫描并获取 Ubuntu 上安装的软件包以及版本

是否有任何Python代码可以获取Ubuntu上安装的软件包列表以及软件包的版本?我在以下位置看过Python代码生成手动安装的包列表并查询各个包。但它没有版本 ID 的列表。有人知道如何获取已安装软件包的版本吗?

答案1

我不确定是否有现有的代码。不过你可以看一下文件/var/lib/dpkg/status。有关已安装软件包的所有信息都存储在此文件中。

即使你不擅长 Python,编写解析此文件的代码也相当容易。

答案2

不确定这是否不应该迁移到askubuntu,但只需使用与上述线程中相同的方法即可。运行 dpkg/dpkg-query 来获取所有数据的转储,并使用标准 python 解析机制来提取相关信息。

当然,由于您已经进行了分叉,因此您可以在 bash 本身中进行所有文本修改。

或者,查找包含版本的状态文件(如果有)(“Dir::Etc::Status”?)。这种方法是最干净的。

答案3

-F( --format) 选项传递给 aptitude to指定显示哪些字段

aptitude --disable-columns -F '%p %v' search '~A'

在 Python 中,使用包apt_pkg中的模块python-apt

相关内容