web-dev-qa-db-ja.com

コマンドラインからセキュリティ更新プログラムのみを確認するにはどうすればよいですか?

コマンドラインからセキュリティ更新プログラムの可用性をすばやく確認するする方法はありますか?

実行中のapt-get updateフェッチ20MBのデータを実行している私の12.04システムでは、実行するたびに多くのリポジトリにヒットします。その後、 here で説明されている任意の方法を使用して、実際に更新を実行できます。

私の質問はセキュリティ更新プログラムの可用性を検出する(つまり、apt-get/aptitude/etcを使用して実際のアップグレードを実行しない)についてです。コマンドラインから実行できるクイックチェックはありますか「利用可能なセキュリティ更新プログラムはありますか?」という質問に対するyes-no回答を提供します。長いapt-get update +実際のアップグレードを実行する前に、それを実行したいと思います。

その答えを毎日知るために20MBのデータをダウンロードする必要はないと思います。

16
laramichaels

私の質問は、セキュリティ更新プログラムの可用性を検出することです

はい、それは通常のapt-get updateが次回の実行時にフルリフレッシュを実行するという警告で実行可能です(20 MBはいずれにしてもそれを実行することを意味します)。

  • Sudo sh -c 'grep precise-security /etc/apt/sources.list > /etc/apt/secsrc.list

  • その後、次を実行すると、利用可能なセキュリティ更新プログラムがあるかどうかがわかります( サンプル出力 ):

     sudo sh -c 'apt-get -o Dir :: Etc :: sourcelist = "secsrc.list"\
    -o Dir :: Etc :: sourceparts = "-" update &&\
     apt-get --assume-no upgrade '
    
  • これは、特別なセキュリティのみのソースリストを一時的に使用するようapt-getに指示し、upgradeを実行して、自動的にnoと応答します。

  • ある場合は、適切なapt-get update(フルリフレッシュを実行)を実行してからアップグレードします。

  • Apt-getの出力を解析したくない場合は、最後に単純なgrep/exitコードチェックを使用して、上記のbashスクリプトを作成できます。

11
ish

これは質問が正確に言っているものではないかもしれませんが、すでにapt updateを実行している場合、以下を使用して利用可能なセキュリティ更新プログラムを確認できます。

Sudo apt list --upgradable | grep -e "-security"

次のようになります:

libssl1.0.0/xenial-updates,xenial-security 1.0.2g-1ubuntu4.9 i386 [upgradable from: 1.0.2g-1ubuntu4.8]
openssl/xenial-updates,xenial-security 1.0.2g-1ubuntu4.9 i386 [upgradable from: 1.0.2g-1ubuntu4.8]
2
Steve