Так же, как однострочный в bash ( -yи --refreshможет быть добавлен):up=$(sudo dnf -q updateinfo list sec | awk '{print $3}'); [[ $up ]] && sudo dnf upgrade $up
marcin
В качестве однострочного псевдонимаalias security-update="pkgs=\$(sudo dnf --refresh -q updateinfo list sec | awk '{print \$3}'); [[ \$pkgs ]] && sudo dnf upgrade -y \$pkgs"
Уэстон Гангер
10
Вы можете использовать dnf-automatic с тремя настройками:
Вы можете поместить 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
для днф --refresh
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!'
Это более совершенное решение дает IndentationError (потому что import osнаходится не в начале строки (даже если вы удалите 3 начальных пробела из каждой строки). И даже если я исправлю несоответствующие отступы, я получу SyntaxError.
Anthon
Отбрасывание старых ответов - это не то, что вы должны делать. Некоторые люди могут думать то же самое о вашем коде, то есть это отстой.
MelBurslan
Вся критика принята положительно. Я сделал несколько правок. Я проверил все, и это должно работать на системах, основанных на fedora / redhat ... Я не хотел сказать, что метод раньше не работал, но в моем случае - отстой ?! :)
LecTos Lacius
поэтому вы помещаете команды оболочки из ответа Tomot в сценарии Python, изменяющиеся dnf upgrade -yна dnf update. Есть еще существенные отличия?
Ответы:
Основано на http://forums.fedoraforum.org/showthread.php?t=305905
источник
-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 с тремя настройками:
(Файл конфигурации по умолчанию -
/etc/dnf/automatic.conf
)или используя:
чтобы получить все доступные обновления, затем обновите их вручную.
источник
Вы можете поместить
dnf updateinfo list updates security
цикл for в скрипт cli или bash. Я все еще настоятельно рекомендую просмотреть обновления безопасности, но вы всегда можете разрешить добавить-y
командуdnf update
это то, что работает для меня в зависимости от некоторых потребностей:
Или немного короче с awk (учтите, что это не работает с --refresh)
для днф --refresh
источник
Предложенные ранее методы не удовлетворяли в моем случае. Вы можете попробовать это, и это, возможно, более совершенным. Создайте файл с именем «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
источник
import os
находится не в начале строки (даже если вы удалите 3 начальных пробела из каждой строки). И даже если я исправлю несоответствующие отступы, я получу SyntaxError.dnf upgrade -y
наdnf update
. Есть еще существенные отличия?