有没有办法按原始安装日期列出 Arch Linux 软件包?

Mor*_*May 1 arch-linux pacman date package-management

我正在寻找一种方法来按照原始安装日期的顺序列出在 Arch Linux 上安装的软件包(不是安装当前版本的软件包的日期;第一次安装任何版本的日期)。我正在寻找的是我的系统上安装的所有软件包的列表,按照它们首次安装的顺序排列。有什么办法可以实现这一点吗?到目前为止,我发现的按日期列出软件包的所有方法都是按最近升级的日期,而不是原始安装的日期。

Chr*_*own 7

按安装日期列出所有软件包的一种简单方法是使用日志:

awk '/\[ALPM\] installed/ { print $(NF-1) }' /var/log/pacman.log
Run Code Online (Sandbox Code Playgroud)

如果您认为“软件包安装日期”与软件包版本无关,则日志是获取此信息的唯一方法。

这是另一种将软件包视为与软件包版本相关的方法——如果软件包升级,则确定的安装日期将会改变。

export LC_ALL=C
while IFS= read -r pkg; do
    printf '%s %s\n' \
    "$(date -d "$(pacman -Qi "$pkg" | sed -n '/^Install Date/s/.* : //p')" +%s)" \
    "$pkg"
done < <(pacman -Qq) | sort -nk1
Run Code Online (Sandbox Code Playgroud)

libalpm(直接使用或通过执行单个pacman -Qi包并使用 迭代每个包可以使速度更快awk,但代码会更复杂。)