이 계산을 수행하는 스크립트 친화적인 방법이 있는지 궁금합니다 apt list --upgradeable
. 이렇게 하면 구문 분석이 매우 쉬운 업그레이드 후보가 한 줄에 하나만 포함된 멋진 출력이 생성됩니다. 하지만 다음 사항 apt
도 경고하세요.
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
그래서 대신 Venerable을 사용해야 할 것 같아요 apt-get
. 불행히도 출력은 다음과 같습니다.
apt-get -s --no-download dist-upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed:
dbus libdbus-1-3
The following packages will be upgraded:
bash gcc-8-base gpgv libedit2 libgcc1 libprocps7 libpsl5 libselinux1 libsemanage-common libsemanage1 libsepol1 libsqlite3-0 libstdc++6 perl-base
procps publicsuffix rsyslog twigpilot-core
18 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
...
이는 분석하기가 어렵습니다. 그래서 apt-get
좀 더 간결한 목록을 인쇄할 수 있도록 업데이트 할 수 있는 방법이 있기를 바랍니다 apt
.
답변1
저는 Ubuntu를 자주 사용하지 않지만 다음은 어떻습니까?
$ apt-get -s --no-download dist-upgrade -V | grep '=>' | awk '{print$1}'
한 줄에 하나의 패킷을 인쇄합니다. 에 명시된 바와 같이 man apt-get
:
-V, --verbose-versions
Show full versions for upgraded and installed packages. Configuration Item: APT::Get::Show-Versions.
답변2
이것이 apt-show-versions -u
당신이 찾고 있는 것입니까? 그것에서맨페이지:
-u
,--upgradeable
업그레이드 가능한 패키지만 인쇄
업그레이드 가능한 모든 패키지를 텍스트 파일에 나열하고 열 형식으로 표시합니다.
apt-show-versions -u | column -t > debupdlist-$(date '+%Y%m%d').txt
업그레이드 가능한 패키지 이름을 나열합니다.
apt-show-versions -u | cut -d: -f1