web-dev-qa-db-fra.com

Comment vérifier uniquement les mises à jour de sécurité à partir de la ligne de commande?

Existe-t-il un moyen de vérifier rapidement la disponibilité des mises à jour de sécurité à partir de la ligne de commande?

Sur mon système 12.04, apt-get update récupère 20 Mo de données sur les packages disponibles chaque fois que je l’exécute, en touchant de nombreux référentiels. Ensuite, je peux utiliser n’importe laquelle des méthodes décrites ici pour effectuer la mise à jour.

Ma question concerne à peu près la détection de la disponibilité de mises à jour de sécurité (c’est-à-dire si vous n’effectuez pas la mise à niveau proprement dite à l’aide d’apt-get/aptitude/etc): existe-t-il un vérification rapide pouvant être effectuée à partir de la ligne de commande fournissant une réponse oui-non à la question "existe-t-il des mises à jour de sécurité disponibles?". Je voudrais l'exécuter avant la longue apt-get update + mise à jour réelle.

Je suppose que je n'ai pas besoin de télécharger 20 Mo de données pour connaître la réponse à cette question tous les jours.

16
laramichaels

Ma question concerne simplement la détection de la disponibilité des mises à jour de sécurité

Oui, c'est faisable avec l'avertissement que le apt-get update normal effectuera une actualisation complète lors de la prochaine exécution (20 Mo signifie qu'il le fait de toute façon).

  • Sudo sh -c 'grep precise-security /etc/apt/sources.list > /etc/apt/secsrc.list

  • Et si vous exécutez ce qui suit, vous verrez si des mises à jour de sécurité sont disponibles ( exemple de sortie ):

     Sudo sh -c 'apt-get -o Dir :: Etc :: sourcelist = "secsrc.list"\
     - o Dir :: Etc :: sourceparts = "-" update &&\
     apt-get --assume-no upgrade '
    
  • Ceci indique à apt-get d'utiliser temporairement la liste spéciale des sources réservées à la sécurité uniquement, puis exécute upgrade en répondant automatiquement à non.

  • S'il en existe, exécutez apt-get update (qui effectuera une actualisation complète), puis mettez à niveau.

  • Vous pouvez faire du script ci-dessus un script bash avec une simple vérification de code de sortie/grep à la fin si vous ne souhaitez pas analyser la sortie d'apt-get :)

11
ish

Ce n'est peut-être pas exactement ce que la question demande, mais si vous avez déjà exécuté apt update, vous pouvez voir quelles mises à jour de sécurité sont disponibles en utilisant:

Sudo apt list --upgradable | grep -e "-security"

qui vous donnera quelque chose comme:

libssl1.0.0/xenial-updates,xenial-security 1.0.2g-1ubuntu4.9 i386 [upgradable from: 1.0.2g-1ubuntu4.8]
openssl/xenial-updates,xenial-security 1.0.2g-1ubuntu4.9 i386 [upgradable from: 1.0.2g-1ubuntu4.8]
2
Steve