équivalent dnf de «yum update --security»


13

yum update --securityinstalle uniquement les mises à jour de sécurité. Je pense que c'est une extension du plugin de sécurité yum.

Existe-t-il une commande dnf équivalente? (dnf a remplacé yum dans Fedora 22)


1
JFTR: par bugzilla.redhat.com/show_bug.cgi?id=1234930 , cette fonctionnalité n'est disponible que dans DNF 2 et à venir Fedora 26
— Sérgio

1
Maintenant mise à niveau dnf --enablerepo = updates-testing --advisory = FEDORA-2019-7cafbe66ba
— Sérgio

Réponses:


7

Basé sur 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
  • - rafraîchir la synchronisation du dépôt forcé
  • -y installer automatiquement
  • SECURITY_UPDATES_NUM méthode de comptage raffinée / fixe, fonctionne pour 0/1 / infini

1
Identique à un doublure en bash ( -yet --refreshpeut être ajouté):up=$(sudo dnf -q updateinfo list sec | awk '{print $3}'); [[ $up ]] && sudo dnf upgrade $up
— marcin

En tant qu'alias à une lignealias security-update="pkgs=\$(sudo dnf --refresh -q updateinfo list sec | awk '{print \$3}'); [[ \$pkgs ]] && sudo dnf upgrade -y \$pkgs"
— Weston Ganger

10

Vous pouvez utiliser dnf-automatic avec trois paramètres:

apply_updates = yes
download_updates = yes
upgrade_type = security

(Le fichier de configuration par défaut est /etc/dnf/automatic.conf)

ou en utilisant:

dnf updateinfo list security

pour obtenir toutes les mises à jour disponibles, puis mettez-les à jour manuellement.


1

Vous pouvez mettre le dnf updateinfo list updates securitydans une boucle for sur le script cli ou bash. Je recommande toujours fortement de revoir les mises à jour de sécurité, mais vous pouvez toujours autoriser à ajouter la -ycommande àdnf update

c'est ce qui fonctionne pour moi en fonction de certains besoins:

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

Ou un peu plus court avec awk (sachez que cela ne fonctionne pas avec --refresh)

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

pour un 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

0

Les méthodes proposées auparavant ne satisfaisaient pas dans mon cas. Vous pouvez essayer celui-ci et c'est peut-être plus parfait. Créez un fichier avec le nom "dnfupdate-security" puis collez les lignes python ci-dessous ou exécutez cmd:

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

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

Collez ensuite le code python dans le fichier 'dnfupdate-security', enregistrez-le

Exécution 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!'

1
"plus parfait"?
— don_crissti

Cette solution plus parfaite donne une IndentationError (parce qu'elle import osn'est pas au début de la ligne (même si vous supprimez les 3 espaces de tête de chaque ligne). Et même si je corrige votre indentation incohérente, j'obtiens une SyntaxError.
— Anthon

Dissiper les anciennes réponses n'est pas quelque chose que vous devriez faire. Certaines personnes peuvent penser la même chose de votre code, c'est-à-dire qu'il est nul.
— MelBurslan

Toutes les critiques sont acceptées positivement. J'ai fait quelques modifications. J'ai tout testé et cela devrait fonctionner sur des systèmes basés sur Fedora / Redhat ... Je ne voulais pas dire que la méthode avant ne fonctionnait pas, mais dans mon cas, ça craint?! :)
— LecTos Lacius

de sorte que vous mettez les commandes shell de la réponse de Tomot dans des scripts python changeant dnf upgrade -yà dnf update. Y a-t-il d'autres différences importantes?
— marcin
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.