Linux

檢查特定 apt 或 deb 包的最後更新日期和時間

  • August 8, 2022

是否有命令將上次更新的日期和時間返回到特定包?目前我對上次更新我的 xorg 很感興趣(我知道,有些軟體將包含多個包),但這是我經常想知道的關於各種包的東西。我正在執行 Linux Mint。(是的,我知道 Mint 中有一個更新歷史 GUI 功能,但它需要大量滾動並且可能會出現人為錯誤)

對於特定的包,

zgrep -h "status installed package" /var/log/dpkg.log* | sort | tail -n 1

將告訴您上次成功安裝軟體包的時間(反映軟體包狀態,因此它還包括升級)。由於dpkg涉及 Debian 衍生產品中的所有包操作,因此無論使用哪種包管理工具(dpkg直接apt、、PackageKit 等),這都將起作用。

例如,

$ zgrep -h "status installed xserver-xorg-core" /var/log/dpkg.log* | sort | tail -n 1
2022-08-07 06:40:54 status installed xserver-xorg-core:amd64 2:1.20.11-1+deb11u2

如果apt涉及(通常是這種情況,除非dpkg直接使用),您可以從其歷史中獲取更多資訊:

zcat -f $(ls -tr /var/log/apt/history.log*)|awk -v RS= '/package/{s=$0}; END{print s}'

這將告訴您包最後一次參與apt操作的時間,以及影響它的命令。例如:

$ zcat -f $(ls -tr /var/log/apt/history.log*)|awk -v RS= '/xserver-xorg-core/{s=$0}; END{print s}'
Start-Date: 2022-08-07  06:40:51
Commandline: /usr/bin/unattended-upgrade
Upgrade: xserver-xorg-core:amd64 (2:1.20.11-1+deb11u1, 2:1.20.11-1+deb11u2)
End-Date: 2022-08-07  06:41:01

(我知道為什麼 not parse ls (以及該怎麼做)?我假設文件名在這裡是安全的,這是在預設設置中使用預設日誌輪換的情況。我是還假設將IFS其設置為其預設值。)

封包件中最頂部的條目changelog.Debian.gz將告訴您它在您的發行版中最後一次修改的時間:

$ zcat /usr/share/doc/xserver-xorg-core/changelog.Debian.gz | head -n 7
xorg-server (2:1.20.11-1+deb11u2) bullseye-security; urgency=medium

 * xkb: add request length validation for XkbSetGeometry (CVE-2022-2319)
 * xkb: swap XkbSetDeviceInfo and XkbSetDeviceInfoCheck (CVE-2022-2320)
 * Closes: #1014903.

-- Emilio Pozuelo Monfort <pochu@debian.org>  Fri, 05 Aug 2022 10:00:36 +0200

引用自:https://unix.stackexchange.com/questions/712849