Use o aplicativo de atualização autônoma.
sudo unattended-upgrade
Isso permite que você instale somente atualizações de segurança automaticamente, mas pode chamá-las manualmente, se necessário.
Na ferramenta GUI, você pode obter uma lista de pacotes com atualizações de segurança. Isso pode ser feito na linha de comando no Debian ou no Ubuntu?
Normalmente, eu poderia usar o "apt-get upgrade", que me mostraria o que está sendo atualizado, mas gostaria de saber quais são as atualizações de segurança.
apt-get upgrade -s | grep -i security
... é o que o plugin Nagios check-apt usa para contar as atualizações de segurança pendentes, que é semelhante ao que você está procurando.
Você pode obter uma lista com este comando:
sudo unattended-upgrade --dry-run -d 2> /dev/null | grep 'Checking' | awk '{ print $2 }'
Eu tenho uma versão modificada de update-notifier
que usa uma opção adicional: --security-package-names
, que gera apenas os nomes de pacotes relacionados à segurança. Eu tenho isso como uma essência (até que eu crie uma solicitação de mesclagem no projeto relevante no launchpad). Até lá, pode ser executado da seguinte forma:
Executar
curl -s https://gist.githubusercontent.com/ahmadnazir/c2444d6b09fd7bb4963a13bc577d92a3/raw/0231b94a4e46abe0a5959de5f84feda76ad2eb9d/apt-check.py \
| python /dev/stdin --security-package-names \
| column -t -s , \
| sort
Resultado
Isso fornece uma saída do formato: nome do pacote , versão instalada e versão candidata :
...
thunderbird 1:38.6.0+build1-0ubuntu0.14.04.1 1:38.8.0+build1-0ubuntu0.14.04.1
thunderbird-gnome-support 1:38.6.0+build1-0ubuntu0.14.04.1 1:38.8.0+build1-0ubuntu0.14.04.1
thunderbird-locale-en 1:38.6.0+build1-0ubuntu0.14.04.1 1:38.8.0+build1-0ubuntu0.14.04.1
thunderbird-locale-en-us 1:38.6.0+build1-0ubuntu0.14.04.1 1:38.8.0+build1-0ubuntu0.14.04.1
...
Com base na resposta de Fabrizio Regini acima.
Para 12.04 / Preciso:
sudo unattended-upgrade --dry-run -d 2>&1 /dev/null | grep 'Checking' | grep security | awk '{ print $2 }'
Para 14.04 / Trusty:
sudo unattended-upgrade --dry-run -d | grep 'Checking' | grep security | awk '{ print $2 }'
E uma variante foi colidida depois de ler as outras respostas - acredito que isso atenda à questão dos falsos positivos e seja razoavelmente leve.
sudo unattended-upgrade --dry-run -d 2>/dev/null | awk '/Checking/ && /archive:..*-security. / {print $2}'
Eu acredito que responder a pergunta que o OP faz é como ver a Lista de pacotes, e não como instalar apenas pacotes de segurança. Com base na resposta do @topdog Você deve usar:
%código%
Onde o
/usr/lib/update-notifier/apt-check -p
flag representa pacotes
Estes dois comandos irão cuspir a lista. Pipe para wc -l para ver quantos estão por trás. ; -)
grep security /etc/apt/sources.list > /tmp/security.list
sudo apt-get upgrade -oDir::Etc::Sourcelist=/tmp/security.list -s
Ainda é válido para distros mais antigas ou se você tiver reposições de atualização desativadas, mas segurança em:
sudo apt-get upgrade -s| grep ^Inst |grep Security
Eu acho que a resposta do @smin é basicamente uma boa abordagem, mas um pouco solta com o regex, como notado por @Shnatsel.
Que tal isso:
apt-get upgrade -q --dry-run \
| perl -ne 'm/^Inst (\S+) \S+ \(([^\)]+) Debian-Security:8/ && print "$1-$2\n"'
Isso lista os nomes dos pacotes junto com as versões que você deseja instalar. Você pode tirar -$2
da declaração de impressão se não quiser as versões lá.
[Isso provavelmente poderia ser feito um pouco mais leve usando awk em vez de perl]
Eu resolvi modificar o script apt-check no meu sistema Ubuntu. Ele cuida apenas de atualizações de segurança, exibindo também nomes de pacotes se o sinalizador -p tiver sido fornecido.
Você pode encontrar a essência aqui: link