dnf setara dengan "pembaruan yum - keamanan"


13

yum update --securityhanya menginstal pembaruan keamanan. Saya pikir ini adalah ekstensi dari plugin yum-security.

Apakah ada perintah dnf yang setara? (dnf menggantikan yum di Fedora 22)


1
JFTR: oleh bugzilla.redhat.com/show_bug.cgi?id=1234930 , fitur ini hanya tersedia di DNF 2 dan Fedora 26 mendatang
Sérgio

1
Sekarang dnf tingkatkan --enablerepo = pembaruan-pengujian --advisory = FEDORA-2019-7cafbe66ba
Sérgio

Jawaban:


7

Berdasarkan 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 memaksa repo sinkronisasi
  • -Y menginstal secara otomatis
  • SECURITY_UPDATES_NUM metode penghitungan yang disempurnakan / diperbaiki, bekerja untuk 0/1 / tak terhingga

1
Sama seperti one-liner di bash ( -ydan --refreshdapat ditambahkan):up=$(sudo dnf -q updateinfo list sec | awk '{print $3}'); [[ $up ]] && sudo dnf upgrade $up
marcin

Sebagai alias satu-lineralias security-update="pkgs=\$(sudo dnf --refresh -q updateinfo list sec | awk '{print \$3}'); [[ \$pkgs ]] && sudo dnf upgrade -y \$pkgs"
Weston Ganger

10

Anda dapat menggunakan dnf-otomatis dengan tiga pengaturan:

apply_updates = yes
download_updates = yes
upgrade_type = security

(File konfigurasi default adalah /etc/dnf/automatic.conf)

atau menggunakan:

dnf updateinfo list security

untuk mendapatkan semua pembaruan yang tersedia, kemudian perbarui secara manual.


1

Anda bisa meletakkan dnf updateinfo list updates securitydalam for for pada skrip cli atau bash. Saya masih sangat merekomendasikan untuk meninjau pembaruan keamanan tetapi Anda selalu dapat mengizinkan untuk memberikan -yperintahdnf update

inilah yang bekerja untuk saya tergantung pada beberapa kebutuhan:

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

Atau sedikit lebih pendek dengan awk (perlu diketahui bahwa ini tidak bekerja dengan --refresh)

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

untuk 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

Metode yang diusulkan sebelumnya tidak memuaskan dalam kasus saya. Anda dapat mencoba yang ini dan mungkin lebih sempurna. Buat file dengan nama "dnfupdate-security" lalu tempelkan garis python di bawah ini atau jalankan cmd:

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

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

Selanjutnya tempel kode python ke file 'dnfupdate-security', simpan

Eksekusi 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
"lebih sempurna"?
don_crissti

Solusi yang lebih sempurna ini memberikan IndentationError (karena import osbukan pada awal baris (bahkan jika Anda menghapus 3 spasi terdepan dari setiap baris). Dan bahkan jika saya memperbaiki indentasi tidak konsisten Anda, saya mendapatkan SyntaxError.
Anthon

Menyingkirkan jawaban lama bukanlah sesuatu yang harus Anda lakukan. Beberapa orang mungkin berpikir hal yang sama tentang kode Anda, yaitu menyebalkan.
MelBurslan

Semua kritik diterima secara positif. Saya melakukan beberapa pengeditan. Saya menguji semua dan itu harus bekerja pada sistem berbasis fedora / redhat ... Saya tidak bermaksud mengatakan metode sebelumnya tidak bekerja tetapi dalam kasus saya menyebalkan ?! :)
LecTos Lacius

jadi Anda memasukkan perintah shell dari jawaban Tomot ke skrip python berubah dnf upgrade -ymenjadi dnf update. Adakah perbedaan substansial lainnya?
marcin
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.