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
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!'
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?
Réponses:
Basé sur http://forums.fedoraforum.org/showthread.php?t=305905
la source
-y
et--refresh
peut être ajouté):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"
Vous pouvez utiliser dnf-automatic avec trois paramètres:
(Le fichier de configuration par défaut est
/etc/dnf/automatic.conf
)ou en utilisant:
pour obtenir toutes les mises à jour disponibles, puis mettez-les à jour manuellement.
la source
Vous pouvez mettre le
dnf updateinfo list updates security
dans 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-y
commande àdnf update
c'est ce qui fonctionne pour moi en fonction de certains besoins:
Ou un peu plus court avec awk (sachez que cela ne fonctionne pas avec --refresh)
pour un dnf --refresh
la source
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
la source
import os
n'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.dnf upgrade -y
àdnf update
. Y a-t-il d'autres différences importantes?