使用 dpkg-query 命令获取已安装软件包的列表,包括安装时间、日期和供应商详细信息

使用 dpkg-query 命令获取已安装软件包的列表,包括安装时间、日期和供应商详细信息

我正在尝试获取带有版本的软件包名称、拆分软件包和版本、该软件包的供应商、安装时间和日期:

dpkg-query -W -f='${Package}-${version} ${package} ${version} ${Maintainer} ${installtime}\n'

但我得到了软件包名称和版本、拆分软件包和版本以及该软件包的供应商。我无法检索安装时间和日期。

如何通过上述查询获取包安装时间和日期?

答案1

dpkg-query没有任何字段选项来显示安装日期/时间。换句话说,它dpkg不存储此信息。在后台,dpkg-query使用各种文件来/var/lib/dpkg/获取信息。

以下是可用的字段名称:

Architecture
Bugs
Conffiles (internal)
Config-Version (internal)
Conflicts
Breaks
Depends
Description
Enhances
Essential
Filename (internal, front-end related)
Homepage
Installed-Size
MD5sum (internal, front-end related)
MSDOS-Filename (internal, front-end related)
Maintainer
Origin
Package
Pre-Depends
Priority
Provides
Recommends
Replaces
Revision (obsolete)
Section
Size (internal, front-end related)
Source
Status (internal)
Suggests
Tag (usually not in .deb but in repository Packages files)
Triggers-Awaited (internal)
Triggers-Pending (internal)
Version

还有一些虚拟字段:

binary:Package
binary:Summary
db:Status-Abbrev
source:Package
source:Version

检查man dpkg-query以获得更广泛的想法。


请注意,您可以查看/var/log/dpkg.log*软件包的安装日期/时间。还请注意,如果您的软件包是由apt-get(或兄弟)安装的,您也可以查看apt历史文件/var/log/apt/history.log*

答案2

我用:

sudo dpkg-query -f '${binary:Package}\n' -W > packages_list.txt

答案3

它可以工作,但是我认为它太慢了。

function lspkgs {
    local installation_text=$(grep " install " /var/log/dpkg.log*)
    for i in $(dpkg-query -f='${Package}\n' -W); do
        echo $(dpkg-query -f='${Package}-${version} ${package} ${version} ${Maintainer} ${installtime}\n' -W $i) $(echo "$installation_text" | grep " install $i:" | sort -n | tail -n1 | cut -d' ' -f 1,2)
    done
}

命令的输出lspkgs

adduser-3.118 adduser 3.118 Debian Adduser Developers <[email protected]> 2022-09-09 03:16:59
alsa-topology-conf-1.2.4-1 alsa-topology-conf 1.2.4-1 Debian ALSA Maintainers <[email protected]> 2022-09-09 11:46:40
alsa-ucm-conf-1.2.4-2 alsa-ucm-conf 1.2.4-2 Debian ALSA Maintainers <[email protected]> 2022-09-09 11:46:42
anacron-2.3-30 anacron 2.3-30 Debian QA Group <[email protected]> 2022-09-09 11:46:44

答案4

您也可以运行以下命令,如屏幕截图参考中所示。

ls -ltr /var/cache/apt/archives/*.deb 

在此处输入图片描述

相关内容