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.