apt list --upgradeable
に相当するものを計算するスクリプトフレンドリーな方法があるかどうか、私は興味があります。これにより、1行に1つだけアップグレード候補があり、非常に解析可能なNice出力が生成されます。しかし、apt
も警告します:
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
だから代わりに由緒ある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
のように、より簡潔なリストを出力するためにapt-get
の更新を取得する方法を期待していました。
私はUbuntuを定期的に使用していませんが、これはどうですか?
$ apt-get -s --no-download dist-upgrade -V | grep '=>' | awk '{print$1}'
1行に1つのパッケージを印刷します。 man apt-get
:
-V, --verbose-versions
Show full versions for upgraded and installed packages. Configuration Item: APT::Get::Show-Versions.
apt-show-versions -u
何をお探しですか? manpage から:
-u
、--upgradeable
アップグレード可能なパッケージのみを印刷する
アップグレード可能なすべてのパッケージをテキストファイルにリストし、列形式で表示します。
apt-show-versions -u | column -t > debupdlist-$(date '+%Y%m%d').txt
アップグレード可能なパッケージの名前を一覧表示します。
apt-show-versions -u | cut -d: -f1
apt
(apt-get
ではない)はこれを提供します:
user@Host:~$ Sudo apt list --upgradable
Listing... Done
ifupdown/xenial-updates 0.8.10ubuntu1.4 AMD64 [upgradable from: 0.8.10ubuntu1.3]
libldap-2.4-2/xenial-updates 2.4.42+dfsg-2ubuntu3.3 AMD64 [upgradable from: 2.4.42+dfsg-2ubuntu3.2]
[etc]
パッケージ名だけを取得するには、次の方法があります。
user@Host:~$ Sudo apt list 2> /dev/null --upgradable | awk -F/ 'NF>1 { print $1 }'
ifupdown
libldap-2.4-2
[etc]