我正在寻找一种方法来按顺序列出我在 Arch Linux 上安装的软件包原始安装日期(不是安装当前版本的软件包的日期;而是第一次安装任何版本的软件包的日期)。我正在寻找的是我的系统上安装的所有软件包的列表,按照它们首次安装的顺序排列。有什么办法可以实现这一点吗?到目前为止,我发现的按日期列出软件包的所有方法都是按最近升级的日期,而不是原始安装的日期。
答案1
按安装日期列出所有软件包的一种简单方法是使用日志:
awk '/\[ALPM\] installed/ { print $(NF-1) }' /var/log/pacman.log
如果您认为“软件包安装日期”与软件包版本无关,则日志是获取此信息的唯一方法。
这是另一种方式做考虑将软件包与软件包版本相关联——如果软件包升级,则确定的安装日期将发生变化。
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
libalpm
(直接使用或通过执行单个包pacman -Qi
并使用 迭代每个包可以使速度更快awk
,但代码会更复杂。)