yum update --security
встановлює лише оновлення безпеки. Я думаю, що це розширення від плагіна yum-security.
Чи існує еквівалентна команда dnf? (dnf замінив yum у Fedora 22)
yum update --security
встановлює лише оновлення безпеки. Я думаю, що це розширення від плагіна yum-security.
Чи існує еквівалентна команда dnf? (dnf замінив yum у Fedora 22)
Відповіді:
На основі 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
-y
і --refresh
можна додати):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"
Ви можете використовувати dnf-automatic з трьома налаштуваннями:
apply_updates = yes
download_updates = yes
upgrade_type = security
(Файл конфігурації за замовчуванням - /etc/dnf/automatic.conf
)
або використовуючи:
dnf updateinfo list security
щоб отримати всі доступні оновлення, потім оновіть їх вручну.
Ви можете поставити dnf updateinfo list updates security
цикл for для циклу cli або bash. Я все ще настійно рекомендую переглянути оновлення безпеки, але ви завжди можете дозволити перейти до -y
командиdnf update
ось що працює для мене залежно від деяких потреб:
for i in $(dnf updateinfo list updates security | grep -Ei ^fedora | cut -d' ' -f3) ; do dnf update $i; done
Або трохи коротше з awk (пам’ятайте, що це не працює з --refresh)
for i in $(dnf updateinfo list updates security | awk 'NR>1 {print $3}') ; do dnf update $i; done
для dnf - оновити
for i in $(dnf updateinfo list updates security| dnf updateinfo list updates security| awk 'NR>1 {print $3}') ; do dnf update $i; done
Запропоновані раніше методи не задовольняли в моєму випадку. Ви можете спробувати це, і це, можливо, більш досконало. Створіть файл з назвою "dnfupdate-security", після чого вставити рядки python внизу або виконати cmd:
cmd1: sudo touch / usr / bin / dnfupdate-security && sudo chmod + x / usr / bin / dnfupdate-security
cmd2: sudo gedit / usr / bin / dnfupdate-security
Далі вставте код python у файл 'dnfupdate-security', збережіть його
Виконання 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!'
import os
він знаходиться не на початку рядка (навіть якщо ви видалите 3 провідні пробіли з кожного рядка). І навіть якщо я виправляю ваше непослідовне відступ, я отримую SyntaxError.
dnf upgrade -y
на dnf update
. Будь-які інші істотні відмінності?