web-dev-qa-db-fra.com

Comment obtenir une liste des mises à jour de sécurité sur la ligne de commande dans Debian / Ubuntu

Dans l'outil GUI, vous pouvez obtenir une liste de packages avec des mises à jour de sécurité. Cela peut-il être fait sur la ligne de commande dans Debian ou Ubuntu?

Normalement, je pourrais utiliser "apt-get upgrade" qui me montrerait ce qui est mis à niveau, mais je voudrais savoir lesquels sont des mises à jour de sécurité.

27
Stephen Paulger

Utilisez l'application de mise à niveau sans assistance.

Sudo unattended-upgrade

Cela vous permet d'installer uniquement les mises à jour de sécurité automatiquement, mais vous pouvez l'appeler manuellement si nécessaire.

5
Andy H
apt-get upgrade -s | grep -i security

... est ce que le plug-in Nagios check-apt utilise pour compter les mises à jour de sécurité en attente, ce qui est similaire à ce que vous recherchez.

41
smin

Sur ubuntu, vous devriez pouvoir utiliser apt-check, c'est celui qui remplit votre motd avec le nombre de mises à jour de sécurité disponibles.

10
topdog

Vous pouvez obtenir une liste avec cette commande:

Sudo unattended-upgrade --dry-run -d 2> /dev/null | grep 'Checking' | awk '{ print $2 }'
5
Fabrizio Regini

J'ai une version modifiée de update-notifier qui prend un commutateur supplémentaire: --security-package-names qui affiche uniquement les noms des packages liés à la sécurité. Je l'ai en tant que Gist (jusqu'à ce que je crée une demande de fusion dans le projet correspondant dans le tableau de bord). Jusque-là, il peut être exécuté comme suit:

Exécuter

curl -s https://Gist.githubusercontent.com/ahmadnazir/c2444d6b09fd7bb4963a13bc577d92a3/raw/0231b94a4e46abe0a5959de5f84feda76ad2eb9d/apt-check.py \
  | python /dev/stdin --security-package-names \
  | column -t -s , \
  | sort

Sortie

Cela donne une sortie au format: nom du package, version installée, et version candidate:

...
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
...
3
mandark

Basé sur la réponse de Fabrizio Regini ci-dessus.

Pour 12.04/Précis:

Sudo unattended-upgrade --dry-run -d 2>&1 /dev/null | grep 'Checking' | grep security | awk '{ print $2 }'

Pour 14.04/Trusty:

Sudo unattended-upgrade --dry-run -d | grep 'Checking' | grep security | awk '{ print $2 }'
3
blazerw

Et une variante s'est effondrée après avoir lu les autres réponses - je crois que cela répond au problème des faux positifs et est raisonnablement léger.

Sudo unattended-upgrade --dry-run -d 2>/dev/null  | awk '/Checking/ && /archive:..*-security. / {print $2}'
1
tink

Je pense que la réponse de @smin est fondamentalement une bonne approche, mais un peu lâche avec l'expression régulière, comme l'a noté @Shnatsel.

Que dis-tu de ça:

apt-get upgrade -q --dry-run \
| Perl -ne 'm/^Inst (\S+) \S+ \(([^\)]+) Debian-Security:8/ && print "$1-$2\n"'

Cela répertorie les noms des packages ainsi que les versions que vous souhaitez installer. Vous pouvez prendre -$2 hors de l'instruction print si vous ne voulez pas les versions.

[Cela pourrait probablement être rendu un peu plus léger en utilisant awk au lieu de Perl]

0
mc0e

J'ai résolu de modifier le script apt-check sur mon système Ubuntu. Il ne s'occupe que des mises à jour de sécurité, affichant également les noms des packages si l'indicateur -p a été fourni.

Vous pouvez trouver le Gist ici: https://Gist.github.com/thesp0nge/94f9d336a081a3fefba6ca61d787a28b

0
Paolo Perego

Je crois que la réponse à la question posée par l'OP est de savoir comment voir les List des packages, et non comment installer uniquement les packages de sécurité. S'appuyant sur la réponse de @topdog Vous devez utiliser: /usr/lib/update-notifier/apt-check -p Où le -p flag représente les packages

0
alonisser

Ces deux commandes cracheront la liste. Dirigez-vous vers wc -l pour voir combien sont derrière. ;-)

grep security /etc/apt/sources.list > /tmp/security.list
Sudo apt-get upgrade -oDir::Etc::Sourcelist=/tmp/security.list -s

Toujours valide pour les distributions plus anciennes ou si vous avez désactivé les référentiels de mise à jour, mais la sécurité est activée:

Sudo apt-get upgrade -s| grep ^Inst |grep Security 
0
flickerfly