dnf equivalente a "yum update --security"


13

yum update --securityinstala solo actualizaciones de seguridad. Creo que es una extensión del complemento yum-security.

¿Hay un comando dnf equivalente? (dnf reemplazó yum en Fedora 22)


1
JFTR: por bugzilla.redhat.com/show_bug.cgi?id=1234930 , esta función solo está disponible en DNF 2 y el próximo Fedora 26
— Sérgio

1
Ahora actualización dnf --enablerepo = actualizaciones-pruebas - asesoría = FEDORA-2019-7cafbe66ba
— Sérgio

Respuestas:


7

Basado en 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
  • --refresh force repo sync
  • -y instalar automáticamente
  • SECURITY_UPDATES_NUM método de conteo refinado / fijo, funciona para 0/1 / infinito

1
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"
— Weston Ganger

10

Puede usar dnf-automatic con tres configuraciones:

apply_updates = yes
download_updates = yes
upgrade_type = security

(El archivo de configuración predeterminado es /etc/dnf/automatic.conf)

o usando:

dnf updateinfo list security

para obtener todas las actualizaciones disponibles, luego actualícelas manualmente.


1

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

0

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!'

1
"más perfecto" ?
— don_crissti

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?
— marcin
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.