Lo mismo que one-liner en bash ( -yy --refreshse puede agregar):up=$(sudo dnf -q updateinfo list sec | awk '{print $3}'); [[ $up ]] && sudo dnf upgrade $up
marcin
Como un alias de una sola líneaalias security-update="pkgs=\$(sudo dnf --refresh -q updateinfo list sec | awk '{print \$3}'); [[ \$pkgs ]] && sudo dnf upgrade -y \$pkgs"
Puede poner el dnf updateinfo list updates securitybucle for en el script cli o bash. Todavía le recomiendo revisar las actualizaciones de seguridad, pero siempre puede permitir que agregue el -ycomando paradnf update
Esto es lo que funciona para mí dependiendo de algunas necesidades:
for i in $(dnf updateinfo list updates security | grep -Ei ^fedora | cut -d' ' -f3) ; do dnf update $i; done
O un poco más corto con awk (tenga en cuenta que esto no funciona con --refresh)
for i in $(dnf updateinfo list updates security | awk 'NR>1 {print $3}') ; do dnf update $i; done
por 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
Los métodos propuestos anteriormente no satisfacían en mi caso. Puedes probar este y quizás sea más perfecto. Cree un archivo con el nombre "dnfupdate-security" y luego pegue las líneas de Python a continuación o ejecute cmd:
cmd1: sudo touch / usr / bin / dnfupdate-security && sudo chmod + x / usr / bin / dnfupdate-security
cmd2: sudo gedit / usr / bin / dnfupdate-security
Luego pegue el código de Python en el archivo 'dnfupdate-security', guárdelo
Ejecución 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!'
Esta solución más perfecta da un IndentationError (porque import osno está al principio de la línea (incluso si elimina los 3 espacios iniciales de cada línea). E incluso si corrijo su sangría inconsistente, obtengo un SyntaxError.
Anthon
Desaprobar viejas respuestas no es algo que debas hacer. Algunas personas pueden pensar lo mismo acerca de su código, es decir, es una mierda.
MelBurslan
Toda crítica es aceptada positivamente. Hice algunas ediciones. Lo probé todo y debería funcionar en sistemas basados en fedora / redhat ... ¡No quise decir que el método anterior no funcionó, pero en mi caso apesta! :)
LecTos Lacius
así que pones comandos de shell de la respuesta de Tomot en scripts de python que cambian dnf upgrade -ya dnf update. ¿Alguna otra diferencia sustancial?
Respuestas:
Basado en http://forums.fedoraforum.org/showthread.php?t=305905
fuente
-y
y--refresh
se puede agregar):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"
Puede usar dnf-automatic con tres configuraciones:
(El archivo de configuración predeterminado es
/etc/dnf/automatic.conf
)o usando:
para obtener todas las actualizaciones disponibles, luego actualícelas manualmente.
fuente
Puede poner el
dnf updateinfo list updates security
bucle for en el script cli o bash. Todavía le recomiendo revisar las actualizaciones de seguridad, pero siempre puede permitir que agregue el-y
comando paradnf update
Esto es lo que funciona para mí dependiendo de algunas necesidades:
O un poco más corto con awk (tenga en cuenta que esto no funciona con --refresh)
por un dnf --refresh
fuente
Los métodos propuestos anteriormente no satisfacían en mi caso. Puedes probar este y quizás sea más perfecto. Cree un archivo con el nombre "dnfupdate-security" y luego pegue las líneas de Python a continuación o ejecute cmd:
cmd1: sudo touch / usr / bin / dnfupdate-security && sudo chmod + x / usr / bin / dnfupdate-security
cmd2: sudo gedit / usr / bin / dnfupdate-security
Luego pegue el código de Python en el archivo 'dnfupdate-security', guárdelo
Ejecución cmd: sudo dnfupdate-security
fuente
import os
no está al principio de la línea (incluso si elimina los 3 espacios iniciales de cada línea). E incluso si corrijo su sangría inconsistente, obtengo un SyntaxError.dnf upgrade -y
adnf update
. ¿Alguna otra diferencia sustancial?