aptのみを使用してセキュリティアップグレードをリストまたはインストールする方法はありますか?
私がアップグレードをリストすると:
apt list --upgradable
知らずにアップグレードが関連するパッケージとライブラリsecurity upgradesも確認できますか?.
さらに、他のものをスキップしてそれらを適用するだけのオプションがあるため、次回apt upgrade
を実行するときに、非セキュリティ関連のアップグレードが再度要求されます?
apt
は、あなたが求めている情報を(まだ)提供することはできません。多少混乱するかもしれませんが、aptitude
はできます。
aptitude search '~U ~ODebian' -F "%p %O"|awk '/Debian-Security/ {print $1}'
これは、すべてのアップグレード可能な(~U
)公式Debianリポジトリのパッケージ(~ODebian
)、およびそれらのパッケージ名(%p
)および "Origin"(%O
)。後者は実際にはリポジトリlabelを表示します。これは、Debian 9セキュリティリポジトリの「Debian-Security:9/stable」です。セキュリティリポジトリからのアップグレード可能なパッケージ名のリストが表示されます。
セキュリティアップグレードのみをインストールする方法はさまざまですが、理想的な方法はありません。
aptitude
のテキストインターフェイスでは、「セキュリティアップデート」ヘッダー(最初のヘッダー)までスクロールして、 +。
上記で抽出したパッケージのリストをapt
にフィードして、アップグレードをインストールできます。
aptitude search '~U ~ODebian' -F "%p %O" |
awk '/Debian-Security/ {print $1}' |
xargs apt-get install --only-upgrade
これには、アップグレードされたパッケージの「自動的にインストールされた」マーカーをクリアするという残念な副作用があります。
unattended-upgrades
、デフォルトのアクションはセキュリティアップグレードのみを適用することです:
unattended-upgrades -v
アップグレードを自動的にインストールしたくない場合は、無効にする必要がありますunattended-upgrades
の毎日のcronジョブ。
セキュリティ更新プログラムを表示するには、以下を使用できます。
apt-get --just-print upgrade | grep -i security | awk '{print $2}' | awk '!seen[$0]++'
1つのパッケージのセキュリティ更新のみを適用するには:
apt-get install --only-upgrade pckg_name
リストのセキュリティ更新のみを適用するには:
list=$(apt-get --just-print upgrade | grep -i security | awk '{print $2}' | awk '!seen[$0]++')
apt-get install --only-upgrade $list