dnf eşdeğeri "yum update --security"


13

yum update --securityyalnızca güvenlik güncelleştirmelerini yükler. Bence bu yum-security eklentisinin bir uzantısı.

Eşdeğer bir dnf komutu var mı? (dnf, Fedora 22'de yum'un yerini aldı)


1
JFTR: bugzilla.redhat.com/show_bug.cgi?id=1234930 tarafından , bu özellik yalnızca DNF 2 ve yakında sunulacak Fedora 26
Sérgio

1
Şimdi dnf yükseltme --enablerepo = güncellemeler-test - TripAdvisory = FEDORA-2019-7cafbe66ba
Sérgio

Yanıtlar:


7

Göre 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
  • - yenileme gücü repo senkronizasyonu
  • -y otomatik olarak kur
  • SECURITY_UPDATES_NUM rafine / sabit sayma yöntemi, 0/1 / sonsuz için çalışır

1
Bash'taki tek astarla aynı ( -yve --refresheklenebilir):up=$(sudo dnf -q updateinfo list sec | awk '{print $3}'); [[ $up ]] && sudo dnf upgrade $up
marcin

Tek alias security-update="pkgs=\$(sudo dnf --refresh -q updateinfo list sec | awk '{print \$3}'); [[ \$pkgs ]] && sudo dnf upgrade -y \$pkgs"
katmanlı

10

Sen kullanabilirsiniz DNF otomatik üç ayarlarla:

apply_updates = yes
download_updates = yes
upgrade_type = security

(Varsayılan yapılandırma dosyasıdır /etc/dnf/automatic.conf)

veya kullanarak:

dnf updateinfo list security

kullanılabilir tüm güncellemeleri almak için manuel olarak güncelleyin.


1

dnf updateinfo list updates securityCli veya bash betiğine for for döngüsünü koyabilirsiniz . Yine de güvenlik güncelleştirmelerini gözden geçirmenizi önemle tavsiye ederim, ancak -ykomutun her zamandnf update

bazı ihtiyaçlara bağlı olarak benim için çalışan budur:

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

Veya awk ile biraz daha kısa (bunun --refresh ile çalışmadığını unutmayın)

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

bir dnf için --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

Daha önce önerilen yöntemler benim durumumda tatmin etmedi. Bunu deneyebilirsiniz ve belki de daha mükemmeldir. "Dnfupdate-security" adında bir dosya oluşturun, ardından aşağıdaki python satırlarını yapıştırın veya cmd'yi yürütün:

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

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

Sonra python kodunu 'dnfupdate-security' dosyasına yapıştırın, kaydedin

Cmd yürütme: 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
"daha mükemmel" ?
16:13, don_crissti

Bu daha mükemmel çözüm bir IndentationError verir (çünkü import ossatırın başında değildir (her satırdaki 3 önde gelen boşluğu kaldırsanız bile) Ve tutarsız girintinizi düzeltsem bile, bir SyntaxError alırım
Anthon

Eski cevapları çözmek sizin yapmanız gereken bir şey değildir. Bazı insanlar kodunuz hakkında aynı şeyi düşünebilir, yani berbat.
MelBurslan

Bütün eleştiriler olumlu kabul edildi. Birkaç düzenleme yaptım. Hepsini test ettim ve fedora / redhat tabanlı sistemlerde çalışmalı ... Daha önce işe yaramadığını söylemek istemedim ama benim durumum berbat mı ?! :)
LecTos Lacius

böylece değişen piton komut içine Tomot cevabı gelen kabuk komutları koymak dnf upgrade -yiçin dnf update. Başka önemli farklılıklar var mı?
marcin
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.