Como encontrar o número de pacotes que precisam de atualização na linha de comando?

32

Estou trabalhando em alguma automação de administração do sistema usando o fabric e gostaria de poder monitorar o número de pacotes que precisam ser atualizados em uma determinada máquina. Esta é a mesma informação que posso ver quando faço o primeiro login em uma máquina, ou seja, esta parte:

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

Existe um comando que eu possa executar (preferencialmente sem sudo ) que forneça apenas essa informação?

Eu olhei para os bindings do apt-python, mas eles parecem ter uma curva de aprendizado alta e eles também parecem ser mudados em torno de um lote - eu gostaria de algo que funcione, pelo menos, tão para trás quanto lúcido sem precisar fazer coisas diferentes em diferentes versões do Ubuntu.

    
por KayEss 22.06.2011 / 05:11

4 respostas

30

Para obter essa saída, você pode usar o comando

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

ou, se você não quiser usar sudo ,

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

Explicação

O aplicativo login mostra a saída encontrada no arquivo /etc/motd , que é um link simbólico para /var/run/motd .

Este último arquivo é atualizado pelo mounted-varrun service (veja /etc/init/mounted-varrun.conf ) invocando todos os scripts em /etc/update-motd.d/ , e em particular

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

que, por sua vez, chama o script

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

este script executa várias ações e, por fim, grava a saída no arquivo de texto

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

EDITAR

Em relação à parte de reinicialização da pergunta, execute este comando

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

não dará saída se a reinicialização não for necessária.

    
por enzotib 22.06.2011 / 08:05
19

Por que você não pode simplesmente executar isso?

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

Isso é o que / usr / lib / update-notifier / update-motd-updates-available faz para coletar as informações, pelo menos na versão do Ubuntu que estou usando (12.10).

    
por Tom Barron 03.04.2013 / 17:06
2

Eu também procuro por um método scripred para uma verificação de atualização dentro de contêineres mínimos do docker, quando encontrei um comentário em /usr/lib/update-notifier/apt-check :

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

Isso permite uma verificação de atualização por script, sem a necessidade de instalar o update-notifier-common package

    
por Simon Sudler 08.06.2017 / 10:49
-2

Bem, você pode usar

sudo apt-get update

não vai te dar a lista ... ou você pode usar system->administration->update manager mas é gráfico: P

    
por Rohan Bojja 22.06.2011 / 07:52