dnf 相当于“yum update --security”

dnf 相当于“yum update --security”

yum update --security仅安装安全更新。我认为它是 yum-security 插件的扩展。

有等效的 dnf 命令吗? (dnf 在 Fedora 22 中取代了 yum)

答案1

您可以使用dnf-自动具有三种设置:

apply_updates = yes
download_updates = yes
upgrade_type = security

(默认配置文件是/etc/dnf/automatic.conf

或使用:

dnf updateinfo list security

获取所有可用更新,然后手动更新它们。

答案2

基于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
  • - 刷新强制回购同步
  • -y自动安装
  • SECURITY_UPDATES_NUM精细/固定计数方法,适用于0/1/无穷大

答案3

您可以将其放入dnf updateinfo list updates securitycli 或 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

答案4

之前提出的方法并不满足我的情况。你可以试试这个,也许更完美。创建名为“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”中,保存

执行cmd: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!'

相关内容