380 votes

Comment puis-je installer uniquement les mises à jour de sécurité à partir de la ligne de commande ?

sudo apt-get upgrade installe toutes les mises à jour, pas seulement les mises à jour de sécurité. Je sais que je peux utiliser Update Manager pour sélectionner uniquement les mises à jour de sécurité importantes, mais existe-t-il un moyen de le faire à partir de la ligne de commande ?

0 votes

Je suppose que vous vouliez faire référence à apt-get (dist-)upgrade ?

2 votes

Je ne pense pas. dist-upgrade met le système entier à une nouvelle version. Je parle des mises à jour quotidiennes, comme celles que vous voyez dans Update Manager.

1 votes

Oh, je vois ce que tu veux dire maintenant. Heh, je lance apt-get update si souvent que je le tape sans réfléchir. Merci de m'avoir prévenu !

5voto

keypress Points 161

Sur Debians, j'utilise cette commande pour effectuer uniquement les mises à jour de sécurité :

apt-get install -y --only-upgrade $( apt-get --just-print upgrade | awk 'tolower($4) ~ /.*security.*/ || tolower($5) ~ /.*security.*/ {print $2}' | sort | uniq )

0 votes

Cela n'inclut pas (accidentellement ?) les différents paquets linux-{modules,images,headers}-*. Ce qui est parfait pour mon objectif, où un système pratiquement sans surveillance a un module de noyau hors de l'arbre qui est fastidieux à compiler après chaque mise à jour du noyau.

0 votes

Oui, c'est accidentel - je pensais que les mises à jour de sécurité de linux-* Les paquets proviennent également des dépôts de sécurité. Mais je ne l'ai pas vérifié.

0 votes

Oui, les mises à jour de la pile Long Term Support HardWare Enablement proviennent des dépôts *-updates. Donc le texte 'security' n'est pas là.

4voto

fuser Points 57
  • apt-get update : juste lire les entrées dans le référentiel - selon la liste existante. Il faut vérifier ce qui est nouveau.
  • apt-get upgrade : toutes les mises à jour pour les paquets installés sans modules de noyau. Pas de mise à jour de la version.
  • apt-get dist-upgrade : toutes les mises à jour pour les paquets installés, y compris pour les modules du noyau. Pas de mise à jour de la version.
  • apt-get avec un paramètre -s : test seulement, aucun changement effectué.

4voto

mmx Points 3131

Bien que ce soit assez laid, vous pourriez désactiver tous les référentiels, à l'exception du référentiel de sécurité, puis faire.. :

sudo apt-get update && sudo apt-get upgrade

Je ne l'ai pas testé, mais en théorie, il devrait seulement trouver les mises à jour dans le dépôt de sécurité et les appliquer...

0 votes

Oui, c'est une possibilité. Je vais y réfléchir. Je ne suis pas bon en BASH, mais je peux essayer de faire un script pour le faire.

0 votes

OK, j'ai désactivé tous les dépôts de sécurité sauf celui d'Ubuntu et j'ai lancé un sudo apt-get update && sudo apt-get upgrade (annulation avant toute mise à niveau). Puis j'ai réactivé tous mes dépôts, exécuté sudo apt-get updatee et ouvrez Update Manager. Les paquets marqués comme des mises à jour de sécurité n'étaient pas exactement ce qu'ils étaient. apt-get upgrade trouvé, mais ils étaient très proches - assez proches pour moi. J'aimerais encore savoir exactement comment Update Manager procède et comment faire la même chose en ligne de commande, mais cela fera l'affaire. Merci !

2voto

Seth Bergman Points 316

Voici un script qui y parvient de plusieurs manières différentes :

#!/usr/bin/env bash
set -e

# List upgradable packages
apt-get update
apt list --upgradable 2>/dev/null
# List security upgrades
test "$(apt-get upgrade -s -y)" && (apt-get upgrade -s -y)
# List upgradable apt packages then upgrade
apt-get update && apt-get upgrade -y  -V | grep '=>' | awk '{print$1}' && test "$(apt-get upgrade -y)"

0voto

Mikeage Points 2731

Je ne trouve pas d'option ni dans apt-get ni dans aptitude, mais quelqu'un a eu l'idée d'utiliser l'option même question sur SuperUser. La seule réponse est :

Check and adjust /etc/apt/apt.conf.d/50unattended-upgrade. 
Did you replace 'karmic' with the code name of your Ubuntu?

Aucune réponse quant à savoir si cela a fonctionné.

2 votes

Il semble que la méthode décrite dans cette page wiki dépende de la définition de l'argument --target-release d'aptitude à <release>-security. Comme le PO de cette question, cette méthode installe toutes les mises à niveau, pas seulement les mises à niveau de sécurité. En lisant les pages de manuel d'apt-get et d'aptitude, je ne pense pas que l'argument --target-release soit même destiné à limiter les mises à niveau à la seule sécurité, bien que je ne sois pas sûr de ce qu'il es pour.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X