Linux - wyświetlaj lub aktualizuj aktualizacje zabezpieczeń tylko przy użyciu apt

11

czy istnieje sposób, aby wyświetlić lub zainstalować aktualizacje zabezpieczeń tylko przy użyciu apt?

jeśli wymienię aktualizacje z:

apt list --upgradable

mogę również zobaczyć, nie znając pakietów i bibliotek, które aktualizacje są odpowiednimi aktualizacjami bezpieczeństwa .

a ponadto czy istnieje możliwość zastosowania ich tylko poprzez pominięcie innych, więc aktualizacje niezwiązane z bezpieczeństwem byłyby ponownie monitowane przy następnym uruchomieniu apt upgrade?

nath
źródło
1
więc masz dwa pytania, 1. wydrukuj aktualizacje zabezpieczeń, 2. zaktualizuj tylko wybrane pakiety, dobrze wiem, że w źródłach znajduje się 6 linków. lista i dwa z nich to linki repozytoriów związane z bezpieczeństwem, możesz zobaczyć, które pakiety, które można uaktualnić, zostaną pobrane z każdego linku, wykonując następujące polecenie: sudo apt upgrade --no-upgrade --assume-no --print-uris
Brian SP2
1
ale jeśli chodzi o drugie pytanie, najwyraźniej możesz wybrać jeden pakiet do aktualizacji za pomocą następującego polecenia sudo apt upgrade --upgrade-only <nazwa pakietu>, ale to nie działa, przepraszam
Brian SP2

Odpowiedzi:

7

aptnie mogę (jeszcze) podać informacji, których szukasz. aptitudemoże jednak, choć nieco myląco:

aptitude search '~U ~ODebian' -F "%p %O"|awk '/Debian-Security/ {print $1}'

Przeszukuje wszystkie ~Upakiety z możliwością aktualizacji ( ) z oficjalnych repozytoriów Debiana ( ~ODebian) i wyświetla ich nazwy ( %p) i „origin” ( %O). Ta ostatnia faktycznie wyświetla etykietę repozytorium , która jest „Debian-Security: 9 / stable” dla repozytoriów bezpieczeństwa Debian 9. Otrzymasz listę nazw pakietów, które można aktualizować z repozytoriów zabezpieczeń.

Istnieje wiele sposobów instalowania tylko aktualizacji zabezpieczeń, ale żaden z nich nie jest idealny.

  • aptitudeInterfejs tekstowy pozwala na stosowanie tylko aktualizacji zabezpieczeń, po prostu przewijając nagłówek „Aktualizacje zabezpieczeń” (który powinien być pierwszy) i naciskając +.

  • Możesz podać listę wyodrębnionych pakietów, aptaby zainstalować aktualizacje:

    aptitude search '~U ~ODebian' -F "%p %O" |
    awk '/Debian-Security/ {print $1}' |
    xargs apt-get install --only-upgrade
    

    Ma to niefortunny efekt uboczny polegający na usunięciu znacznika „automatycznie zainstalowanego” z uaktualnionych pakietów.

  • Możesz użyć unattended-upgrades , którego domyślnym działaniem jest zastosowanie tylko aktualizacji bezpieczeństwa:

    unattended-upgrades -v
    

    Jeśli nie chcesz, aby aktualizacje były instalowane automatycznie, musisz wyłączyć unattended-upgradescodzienne zadanie crona.

Stephen Kitt
źródło
Wydaje się, że TUI firmy Aptitude nie prezentuje już oddzielnie aktualizacji zabezpieczeń - mniej więcej rok temu 16.04, a obecnie 18.04. Czy ktoś jeszcze to widział?
Greg Bell
@Greg nadal to dla mnie robi (na Debianie 10) i nie widzę żadnych zmian w Ubuntu, które mogłyby na to wpłynąć. Być może aktualizacje zabezpieczeń są stosowane automatycznie, zanim będzie można je zobaczyć aptitude, np. Przez unattended-upgrades...
Stephen Kitt
Nie, moje nienadzorowane aktualizacje są ograniczone tylko do thunderbirda, sshd i firefox. Dziwne jest to, że wyszukiwanie umiejętności „~ U” znajduje mnóstwo. Widzę, że nadal działa na aptitude 0.7.4; aptitude 0.8.10 jest dostarczane z Ubuntu 18.04. Jaką masz wersję?
Greg Bell
@Greg Mam 0.8.11 i pokazuje aktualizacje zabezpieczeń we własnej sekcji . Wyświetlanie jest konfigurowalne, co może być tutaj problemem - po naciśnięciu G, jaki mechanizm grupowania pakietów jest pokazywany? Domyślnie jest to task,status,section(subdirs,passthrough),section(topdir).
Stephen Kitt
Ten sam mechanizm grupowania tutaj. I mv'd ~ / .aptitude, aby upewnić się, że nie jest to coś głupiego, co ustawię.
Greg Bell
5

Aby wyświetlić aktualizację zabezpieczeń, możesz użyć:

apt-get --just-print upgrade | grep -i security | awk '{print $2}' | awk '!seen[$0]++'

Aby zastosować tylko aktualizacje zabezpieczeń dla 1 pakietu:

apt-get install --only-upgrade pckg_name

Aby zastosować tylko aktualizacje zabezpieczeń z listy:

list=$(apt-get --just-print upgrade | grep -i security | awk '{print $2}' | awk '!seen[$0]++')
apt-get install --only-upgrade $list
GAD3R
źródło