web-dev-qa-db-ja.com

「yum update --security」に相当するdnf

yum update --securityは、セキュリティ更新のみをインストールします。これは、yum-securityプラグインの拡張機能だと思います。

同等のdnfコマンドはありますか? (Fedora 22では、dnfがyumを置き換えました)

13
marcin

http://forums.fedoraforum.org/showthread.php?t=305905 に基づく

#!/bin/bash

SECURITY_UPDATES_LIST=$( dnf --refresh -q updateinfo list sec | awk '{print $3}' )
SECURITY_UPDATES_NUM=`echo "$SECURITY_UPDATES_LIST" | sed '/^$/d' | wc -l`

if [ "$SECURITY_UPDATES_NUM" -eq 0 ]; then
  exit
fi

dnf upgrade -y $SECURITY_UPDATES_LIST
  • -refreshリポジトリの同期を強制します
  • -y自動的にインストール
  • SECURITY_UPDATES_NUM洗練された/固定されたカウント方法、0/1 /無限大で機能します
7
Tomot

3つの設定で dnf-automatic を使用できます。

apply_updates = yes
download_updates = yes
upgrade_type = security

(デフォルトの構成ファイルは/etc/dnf/automatic.conf

または使用:

dnf updateinfo list security

利用可能なすべての更新を取得してから、手動で更新します。

10
cuonglm

dnf updateinfo list updates securityは、cliまたはbashスクリプトのforループに配置できます。セキュリティの更新を確認することを強くお勧めしますが、いつでも-yコマンドをdnf updateにスローすることを許可できます。

これは、いくつかのニーズに応じて私にとってうまくいくものです:

for i in $(dnf updateinfo list updates security | grep -Ei ^Fedora | cut -d' ' -f3) ; do dnf update $i; done

またはawkで少し短くする(これは--refreshでは機能しないことに注意してください)

for i in $(dnf updateinfo list updates security | awk 'NR>1 {print $3}') ; do dnf update $i; done

dnf --refreshの場合

for i in $(dnf updateinfo list updates security| dnf updateinfo list updates security| awk 'NR>1 {print $3}') ; do dnf update $i; done
2
GrandPuba

以前に提案された方法は私の場合満足しませんでした。あなたはこれを試すことができ、それはおそらくより完璧です。 「dnfupdate-security」という名前のファイルを作成してから、python行を下に貼り付けるか、cmdを実行します。

cmd1:Sudo touch/usr/bin/dnfupdate-security && Sudo chmod + x/usr/bin/dnfupdate-security

cmd2:Sudo gedit/usr/bin/dnfupdate-security

次にpythonコードをファイル 'dnfupdate-security'に貼り付け、保存します

実行コマンド:Sudo dnfupdate-security

#!/usr/bin/python
"""
DESCRIPTION: Check for security updates and insert all the packages into "dnf update" as argument.
"""
import os

updateList = ''; x = ''

for x in os.popen("dnf -q updateinfo list sec | awk '{print $3}'"):
    x = x.strip()
    updateList = updateList+' '+x

if x != '':
    os.system('dnf update '+updateList)
else:
    print 'No security updates available at this time!'
0
LecTos Lacius