Jak uzyskać listę wszystkich oczekujących aktualizacji zabezpieczeń?

16

Muszę wymienić (nie liczyć ani instalować) wszystkie oczekujące aktualizacje zabezpieczeń w systemie Ubuntu 14.04. Przeczytałem post Jak utworzyć listę tylko aktualizacji zabezpieczeń za pomocą apt-get? a jego zaakceptowana odpowiedź ( apt-show-versions | grep upgradeable | grep security) rzeczywiście daje mi listę.

Jednak polecenie to wyświetla listę 62 oczekujących aktualizacji zabezpieczeń. /usr/lib/update-notifier/apt-checkmówi mi, że mam 75 oczekujących aktualizacji zabezpieczeń, ale wydaje się, że nie mam sposobu, aby je wymienić. Jak mogę pogodzić te dwie liczby? Czy jedno z dwóch poleceń robi coś innego niż to, czego chcę?

użytkownik3553031
źródło

Odpowiedzi:

7

Jeśli chcesz to zrobić tylko raz, zamiast tworzyć osobne repozytorium i tworzyć skrypty automatyzacji i tak dalej. Świetnie, jeśli nie powinieneś wprowadzać zmian podczas kontroli systemu lub czegokolwiek.

Te dwa polecenia wyplują listę. Przesuń do wc -l, aby zobaczyć, ile jest za nimi. ;-)

grep security /etc/apt/sources.list > /tmp/security.list
sudo apt-get upgrade -oDir::Etc::Sourcelist=/tmp/security.list -oDir::Etc::SourceParts=/some/valid/dir/false -s

Nadal obowiązuje dla starszych dystrybucji lub jeśli masz wyłączone aktualizacje repozytoriów, ale zabezpieczenia włączone:

sudo apt-get upgrade -s| grep ^Inst |grep Security 
Flickerfly
źródło
dlaczego piszesz „ Nadal obowiązuje dla starszych dystrybucji lub jeśli masz wyłączone aktualizacje repozytoriów, ale zabezpieczenia włączone ”? jeśli rozwiązanie potokowe nie działa, może dodać opcję -V( -verbose-versions)?
myrdd
@myrdd Ponieważ po raz pierwszy korzysta z funkcji, które nie były dostępne w dystrybucjach, które wychodziły z mody w 2016 roku. Może już nie być rzeczą.
flickerfly
więc to drugie rozwiązanie powinno zawsze działać, nie?
myrdd
1
@myrdd O ile format danych wyjściowych nie zmienia się w nowszej wersji. Pierwszy jest lepszy, ponieważ nie zależy od formatu wyniku.
flickerfly
3
+---------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|                            Command                            |                                                                               Purpose                                                                               |
+---------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| apt list --upgradable                                         | List all updates available                                                                                                                                          |
| apt list --upgradable | grep "\-security"                     | List all updates that are security.                                                                                                                                 |
| apt list --upgradable 2>/dev/null | grep "\-security" | wc -l | Count number of security updates available. and redirects the stderr like "WARNING: apt does not have a stable CLI interface. Use with caution in scripts." to null |
+---------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Dowiedz się więcej
źródło
2

To działało dla mnie:

sudo unattended-upgrade --dry-run -d 2> /dev/null | awk '/Checking/ { print $2 }'
Samuel James
źródło
2
Pokazuje wszystkie dostępne aktualizacje, ale nie ogranicza się do aktualizacji zabezpieczeń, jeśli się nie mylę. Nadal pomocny.
delf
2
sudo apt-get -s --no-download dist-upgrade -V | grep "^Inst.*security.*$" | cut -d " " -f 2

Z pomocą tego pytania

lolcode
źródło
0
sudo apt list --upgradable |grep "/$(lsb_release -cs)-security"

Zawiera listę wszystkich dostępnych aktualizacji, które pochodzą z repozytorium zabezpieczeń.

zerwas
źródło
1
apt jest przeznaczony do użytku interaktywnego. Otrzymasz ostrzeżenie, gdy zostanie użyty w skrypcie. Użyj apt-getzamiast tego.
Bernard
0

musi istnieć sposób, aby zapytać, ile pakietów można teraz zaktualizować i ile aktualizacji zabezpieczeń teraz , ale jeśli zdecydujesz się pytać raz dziennie, możesz po prostu przeczytać plik / var / lib / update-notifier / updates-available , który wydaje się być codziennie aktualizowany przez skrypt /etc/cron.daily/update-notifier-common, który należy do pakietu update-notifier-common

Przykład:

$ sudo cat /var/lib/update-notifier/updates-available

355 packages can be updated.
1 update is a security update.

Testowane w:

  • Ubuntu 14.04 LTS
  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS

Pozdrowienia,

/Anioł

Anioł
źródło