yum update --security
installiert nur Sicherheitsupdates. Ich denke, es ist eine Erweiterung des YUM-Security-Plugins.
Gibt es einen äquivalenten DNF-Befehl? (DNF ersetzt YUM in Fedora 22)
yum update --security
installiert nur Sicherheitsupdates. Ich denke, es ist eine Erweiterung des YUM-Security-Plugins.
Gibt es einen äquivalenten DNF-Befehl? (DNF ersetzt YUM in Fedora 22)
Antworten:
Basierend auf 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
--refresh
up=$(sudo dnf -q updateinfo list sec | awk '{print $3}'); [[ $up ]] && sudo dnf upgrade $up
alias security-update="pkgs=\$(sudo dnf --refresh -q updateinfo list sec | awk '{print \$3}'); [[ \$pkgs ]] && sudo dnf upgrade -y \$pkgs"
Sie können dnf-automatic mit drei Einstellungen verwenden:
apply_updates = yes
download_updates = yes
upgrade_type = security
(Standardkonfigurationsdatei ist /etc/dnf/automatic.conf
)
oder mit:
dnf updateinfo list security
Um alle verfügbaren Updates zu erhalten, aktualisieren Sie sie manuell.
Sie können die dnf updateinfo list updates security
for-Schleife in das CLI- oder Bash-Skript einfügen. Ich empfehle nach wie vor dringend, die Sicherheitsupdates zu überprüfen, aber Sie können jederzeit zulassen, dass der -y
Befehl an gesendet wirddnf update
Das funktioniert bei mir je nach Bedarf:
for i in $(dnf updateinfo list updates security | grep -Ei ^fedora | cut -d' ' -f3) ; do dnf update $i; done
Oder etwas kürzer mit awk (beachten Sie, dass dies mit --refresh nicht funktioniert)
for i in $(dnf updateinfo list updates security | awk 'NR>1 {print $3}') ; do dnf update $i; done
für ein dnf --fresh
for i in $(dnf updateinfo list updates security| dnf updateinfo list updates security| awk 'NR>1 {print $3}') ; do dnf update $i; done
Die zuvor vorgeschlagenen Methoden waren in meinem Fall nicht zufriedenstellend. Sie können dieses versuchen und es ist möglicherweise vollkommener. Erstelle eine Datei mit dem Namen "dnfupdate-security" und füge dann Python-Zeilen darunter ein oder führe cmd aus:
cmd1: sudo touch / usr / bin / dnfupdate-security & sudo chmod + x / usr / bin / dnfupdate-security
cmd2: sudo gedit / usr / bin / dnfupdate-security
Als nächstes fügen Sie den Python-Code in die Datei 'dnfupdate-security' ein und speichern Sie ihn
Execution 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!'
import os
nicht am Zeilenanfang steht (auch wenn Sie die drei führenden Leerzeichen aus jeder Zeile entfernen). Und selbst wenn ich Ihren inkonsistenten Einzug korrigiere, erhalte ich einen SyntaxError.
dnf upgrade -y
in geändert werden dnf update
. Gibt es noch andere wesentliche Unterschiede?