Tak samo jak jedna wkładka bash ( -yi --refreshmogą być dodawane)up=$(sudo dnf -q updateinfo list sec | awk '{print $3}'); [[ $up ]] && sudo dnf upgrade $up
marcin
Jako alias alias security-update="pkgs=\$(sudo dnf --refresh -q updateinfo list sec | awk '{print \$3}'); [[ \$pkgs ]] && sudo dnf upgrade -y \$pkgs"
Możesz umieścić dnf updateinfo list updates securitypętlę for w skrypcie cli lub bash. Nadal bardzo polecam przejrzenie aktualizacji zabezpieczeń, ale zawsze możesz zezwolić na przekazanie -ypolecenia dodnf update
to działa dla mnie w zależności od niektórych potrzeb:
for i in $(dnf updateinfo list updates security | grep -Ei ^fedora | cut -d' ' -f3) ; do dnf update $i; done
Lub nieco krótszy z awk (pamiętaj, że to nie działa z --refresh)
for i in $(dnf updateinfo list updates security | awk 'NR>1 {print $3}') ; do dnf update $i; done
dla 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
Proponowane wcześniej metody nie spełniły się w moim przypadku. Możesz wypróbować ten i być może jest on doskonalszy. Utwórz plik o nazwie „dnfupdate-security”, następnie wklej poniżej wiersze pytona lub uruchom polecenie cmd:
cmd1: sudo touch / usr / bin / dnfupdate-security && sudo chmod + x / usr / bin / dnfupdate-security
cmd2: sudo gedit / usr / bin / dnfupdate-security
Następnie wklej kod python do pliku „dnfupdate-security”, zapisz go
Wykonanie 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!'
To bardziej idealne rozwiązanie daje błąd IndentationError (ponieważ import osnie ma go na początku wiersza (nawet jeśli usuniesz 3 początkowe spacje z każdej linii). I nawet jeśli poprawię twoje niespójne wcięcie, otrzymam błąd SyntaxError.
Anthon
Odrzucanie starych odpowiedzi nie jest czymś, co powinieneś zrobić. Niektórzy ludzie mogą myśleć tak samo o twoim kodzie, tzn. Jest do bani.
MelBurslan,
Wszystkie krytyki zostały przyjęte pozytywnie. Zrobiłem kilka zmian. Przetestowałem wszystko i powinno działać na systemach opartych na fedora / redhat ... Nie chciałem powiedzieć, że metoda wcześniej nie działała, ale w moim przypadku jest do kitu ?! :)
LecTos Lacius
więc wstawiasz polecenia powłoki z odpowiedzi Tomota do skryptów pythonowych zmieniających się dnf upgrade -yna dnf update. Jakieś inne istotne różnice?
Odpowiedzi:
Na podstawie http://forums.fedoraforum.org/showthread.php?t=305905
źródło
-y
i--refresh
mogą być dodawane)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"
Możesz użyć DNF-Automatic z trzema ustawieniami:
(Domyślny plik konfiguracyjny to
/etc/dnf/automatic.conf
)lub używając:
aby uzyskać wszystkie dostępne aktualizacje, a następnie zaktualizuj je ręcznie.
źródło
Możesz umieścić
dnf updateinfo list updates security
pętlę for w skrypcie cli lub bash. Nadal bardzo polecam przejrzenie aktualizacji zabezpieczeń, ale zawsze możesz zezwolić na przekazanie-y
polecenia dodnf update
to działa dla mnie w zależności od niektórych potrzeb:
Lub nieco krótszy z awk (pamiętaj, że to nie działa z --refresh)
dla dnf --refresh
źródło
Proponowane wcześniej metody nie spełniły się w moim przypadku. Możesz wypróbować ten i być może jest on doskonalszy. Utwórz plik o nazwie „dnfupdate-security”, następnie wklej poniżej wiersze pytona lub uruchom polecenie cmd:
cmd1: sudo touch / usr / bin / dnfupdate-security && sudo chmod + x / usr / bin / dnfupdate-security
cmd2: sudo gedit / usr / bin / dnfupdate-security
Następnie wklej kod python do pliku „dnfupdate-security”, zapisz go
Wykonanie cmd: sudo dnfupdate-security
źródło
import os
nie ma go na początku wiersza (nawet jeśli usuniesz 3 początkowe spacje z każdej linii). I nawet jeśli poprawię twoje niespójne wcięcie, otrzymam błąd SyntaxError.dnf upgrade -y
nadnf update
. Jakieś inne istotne różnice?