如何在不查看 pkg.log 的情况下获取 Ubuntu/Debian 上已安装软件包的列表?

如何在不查看 pkg.log 的情况下获取 Ubuntu/Debian 上已安装软件包的列表?

我必须提取 Ubuntu/Debian 上已安装软件包的列表,而无需使用命令或查看 dpkg.log?

基本要求是从软件包数据库文件(如果有)中获取 Debian/Ubuntu OS 上已安装软件包的列表,我可以从以下文件中获取可用软件包的列表,

/var/lib/dpkg/available

但这个文件包含了所有未安装的软件包。

Debian/Ubuntu 上是否有其他 db 文件仅包含已安装软件包的列表?

答案1

包含与命令提供的信息相同的信息的文件dpkg -l/var/lib/dpkg/status。来自FILES的部分man dpkg

   /var/lib/dpkg/status
          Statuses of available  packages.  This  file  contains  information
          about  whether  a package is marked for removing or not, whether it
          is installed or not, etc. See section  INFORMATION  ABOUT  PACKAGES
          for more info.

          The  status  file  is  backed  up  daily in /var/backups. It can be
          useful if it's lost or corrupted due to filesystems troubles.

   The format and contents of a binary package are described in deb(5).

但是你的“w/o 命令”要求没有什么意义,因为你需要编写一个命令来解析它。例如

awk -vRS= '/Status: install/ {print $2}' /var/lib/dpkg/status

大致相当于dpkg -l | awk '$1 == "ii" {print $2}'(它们在排序顺序和一些可能的架构后缀上会有所不同,如:amd64)。

相关内容