apt-getを使用してアップグレードするソフトウェアパッケージのリストを取得するには?

apt-getを使用してアップグレードするソフトウェアパッケージのリストを取得するには?

この計算を実行するスクリプトに優しい方法があるかどうか疑問に思いますapt list --upgradeable。これにより、解析が非常に簡単なアップグレード候補が1行に1つしか含まれていない素晴らしい出力が生成されます。ただし、次の点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}'

1行に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 

関連情報