Come trovare il numero di pacchetti che richiedono l’aggiornamento dalla riga di comando?

Sto lavorando su alcuni sistemi di automazione dell’amministratore di sistema usando fabric e mi piacerebbe essere in grado di monitorare il numero di pacchetti che necessitano l’aggiornamento su un dato computer. Questa è la stessa informazione che posso vedere quando accedo per la prima volta ad una macchina, cioè questa parte:

35 packages can be updated. 22 updates are security updates. 

C’è un comando che posso eseguire (preferibilmente senza sudo ) che fornisce solo queste informazioni?

Ho esaminato i binding di apt-python, ma sembrano avere una curva di apprendimento elevata e sembrano anche essere cambiati molto – mi piacerebbe qualcosa che funzionasse almeno nel modo più shiny ansible senza bisogno di fare cose diverse su diverse versioni di Ubuntu.

Per ottenere quell’output, puoi usare il comando

 sudo /usr/lib/update-notifier/update-motd-updates-available 

o, se non vuoi usare sudo ,

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

Spiegazione

L’applicazione di login mostra l’output trovato nel file /etc/motd , che è un collegamento simbolico a /var/run/motd .

Questo ultimo file viene aggiornato dal servizio mounted-varrun (si veda /etc/init/mounted-varrun.conf ) richiamando tutti gli script in /etc/update-motd.d/ , e in particolare

 /etc/update-motd.d/90-updates-available 

che a sua volta chiama la sceneggiatura

 /usr/lib/update-notifier/update-motd-updates-available 

questo script esegue varie azioni e infine scrive l’output nel file di testo

 /var/lib/update-notifier/updates-available 

MODIFICARE

Per quanto riguarda la parte di riavvio della domanda, eseguire questo comando

 /usr/lib/update-notifier/update-motd-reboot-required 

non darà output se il riavvio non è richiesto.

Perché non puoi semplicemente eseguire questo?

 /usr/lib/update-notifier/apt-check --human-readable 

Questo è ciò che / usr / lib / update-notifier / update-motd-updates-available fa per raccogliere le informazioni, almeno nella versione di Ubuntu che sto usando (12.10).

Cerco anche un metodo di scripting per un controllo di aggiornamento all’interno di contenitori docker minimi, quando ho trovato un commento in /usr/lib/update-notifier/apt-check :

 apt-get -s -o Debug::NoLocking=true upgrade | grep ^Inst 

Ciò consente un controllo degli aggiornamenti tramite script, senza la necessità di installare il pacchetto update-notifier-common

Bene, puoi usare

 sudo apt-get update 

non ti darà la lista … o puoi usare system->administration->update manager ma è graficamente: P