특정 패키지가 마지막으로 업데이트된 날짜와 시간을 반환하는 명령이 있습니까? 현재 나는 xorg가 언제 마지막으로 업데이트되었는지에 관심이 있지만(일부 소프트웨어에는 여러 패키지가 포함되어 있음을 알고 있습니다) 이것은 다양한 패키지에 대해 자주 알고 싶은 것입니다. 저는 리눅스 민트를 사용하고 있습니다. (예, Mint에 업데이트 내역 GUI 기능이 있다는 것을 알고 있지만 스크롤이 필요하고 사람의 실수가 발생할 수 있습니다.)
답변1
특정 패키지의 경우,
zgrep -h "status installed package" /var/log/dpkg.log* | sort | tail -n 1
패키지가 마지막으로 성공적으로 설치된 시간을 알려줍니다. 이는 패키지의 상태를 반영하므로 업그레이드도 포함됩니다. 여기에는 데비안 파생물의 모든 패키지 작업이 포함 되므로 어떤 패키지 관리 도구( 직접, PackageKit 등)를 dpkg
사용하든 관계없이 작동합니다 .dpkg
apt
예를 들어,
$ 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
(알아요왜 `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 <[email protected]> Fri, 05 Aug 2022 10:00:36 +0200