是否有任何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
。