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

16

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, l'exécution apt-get updaterécupère 20 Mo de données sur les packages disponibles chaque fois que je l'exécute, atteignant de nombreux référentiels en cours de route. Ensuite, je peux utiliser l'une des méthodes décrites ici pour effectuer la mise à jour.

Ma question concerne simplement la détection de la disponibilité des mises à jour de sécurité (c.-à-d., Ne pas effectuer la mise à niveau réelle en utilisant apt-get / aptitude / etc): existe-t-il une vérification rapide qui peut être effectuée à partir de la ligne de commande qui fournit une réponse oui-non à la question "des mises à jour de sécurité sont-elles disponibles?". Je voudrais l'exécuter avant d'exécuter la apt-get updatemise à niveau longue + 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 à cela tous les jours.

laramichaels
la source
Vous voulez dire les apt-get update20 Mo de métadonnées de package récupérés?
Jeremy Kerr
@JeremyKerr: oui, c'est le cas si vous êtes sur le serveur principal (archive / us.archive) car les listes de paquets sont mises à jour toutes les demi-heures ... il y a un ou deux longs threads à ce sujet sur AU depuis international / bas débit les utilisateurs qui en sont très déçus.
ish
@izx: intéressant, vient de lancer un test en apt-get updateutilisant un miroir australien (je suis en .au); le total téléchargé était de 1,3 Mo.
Jeremy Kerr

Réponses:

11

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

Oui, c'est faisable avec la mise en garde que la normale apt-get updatefera un rafraîchissement complet lors de la prochaine exécution (20 Mo signifie que c'est de toute façon le cas).

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

  • Et si vous exécutez ensuite ce qui suit, vous verrez s'il existe des mises à jour de sécurité 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 '
    
  • Cela indique apt-getd'utiliser temporairement la liste des sources de sécurité uniquement, puis s'exécute upgrade, répondant automatiquement non.

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

  • Vous pouvez faire de ce qui précède un script bash avec une simple vérification du code grep / exit à la fin si vous n'avez pas envie d'analyser la sortie apt-get :)

ish
la source
c'est exactement ce que je cherchais, merci beaucoup! :) une question rapide: mon fichier /etc/apt/secsrc.list ne fait aucune référence au référentiel «partenaires» (juste à «principal restreint», «univers» et « multivers '), vais-je quand même être informé des mises à jour de sécurité pour les packages de ce référentiel?
laramichaels
@laramichaels, le référentiel de partenaires ne contient que quinze packages , et ce sont essentiellement des binaires propriétaires enveloppés dans un .deb. Les mises à jour incrémentielles de «sécurité» ne sont pas publiées pour ces derniers, et j'imagine que même les mises à jour régulières sont peu fréquentes (pensez Adobe Reader). Je voudrais juste ajouter le dépôt réel ( deb http://archive.canonical.com/ubuntu precise partner) à secsrc.listla petite taille (5 ko) du fichier de mise à jour du partenaire.
ish
@laramichaels, j'ai également ajouté une réponse plus détaillée à votre question précédente sur l'aspect des mises à jour de sécurité des partenaires. La réponse acceptée était erronée OMI, alors s'il vous plaît jetez un œil lorsque vous avez un moment libre et acceptez le mien à la place si vous pensez que c'est mieux.
ish
1
À quoi sert ce bit? -o Dir::Etc::sourceparts="-"
ChocoDeveloper
2

Ce n'est peut-être pas exactement ce que la question pose, 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"

ce 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]
Steve
la source