Número de atualizações legíveis da máquina? Alternativa para / usr / lib / update-notifier / apt-check?

4

/usr/lib/update-notifier/apt-check (do pacote update-notifier-common) era uma ferramenta excelente. Mas ele será removido do Debian.

/usr/lib/update-notifier/apt-check --human-readable
28 packages can be updated.
0 updates are security updates.

/usr/lib/update-notifier/apt-check
28;0  ~/whonix_dot/Whonix $

Existe alguma alternativa legível por máquina (para shell scripts) para esta ferramenta?

    
por adrelanos 17.12.2013 / 01:22

2 respostas

3

O comando apt-get pode ser facilmente analisado para obter o número de atualizações.

$ apt-get -s dist-upgrade | grep "^[[:digit:]]\+ upgraded"

Exemplo

$ apt-get -s dist-upgrade | grep "^[[:digit:]]\+ upgraded"
82 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.

Isso pode ser reduzido para apenas o número assim:

$ apt-get -s dist-upgrade | grep -o "^[[:digit:]]\+"
82

Ou mais concisamente:

$ apt-get -s dist-upgrade | grep -Po "^[[:digit:]]+ (?=upgraded)"
82 

O que poderia ser encurtado para isso:

$ apt-get -s dist-upgrade | grep -Po "^\d+ (?=upgraded)"
82 
    
por 17.12.2013 / 04:39
0

Se o apt-get for executado com uma linguagem diferente, sua saída será diferente. Em princípio, seria melhor usar um comando como apt-get dist-upgrade -s --quiet=2 | grep ^Inst . Ele poderia então ser canalizado através de wc -l para gerar um número.

Essa é a abordagem usada por apticron . A abreviação Inst está documentada nas páginas de manual do apt-get para todos os idiomas.

Na prática, a única diferença que notei com LANG=de_DE.UTF-8 apt-get ... foi [J/n] em vez de [Y/n] . apt-get deve ser mais estável para scripts, pelo menos em comparação com a nova ferramenta apt . Essa última é uma ligeira decepção; seria legal se pudéssemos usar apt list --upgradable .

    
por 07.04.2016 / 16:29