web-dev-qa-db-fra.com

Quel est l'équivalent miam de 'apt-get update'?

apt-get update De Debian récupère et met à jour l'index du paquet. Comme je suis habitué à cette façon de faire, j'ai été surpris de constater que yum update Fait tout ce qui et met à niveau le système. Cela m'a rendu curieux de savoir comment mettre à jour l'index du package sans rien installer.

99
tshepang

La commande check-update Actualisera l'index du package et recherchera les mises à jour disponibles:

yum check-update
98
wag

Tandis que yum check-update vérifiera les mises à jour des packages installés, si elle doit être actualisée, de même que la plupart des autres commandes.

La commande strictement équivalente à apt-get update est yum makecache ... mais il n'est généralement pas recommandé de l'exécuter directement, en miam.

31
James Antill

Malheureusement, yum check-update Par défaut ne déroule pas les modifications des référentiels distants tant que le paramètre metadata_expire de yum.conf N'est pas écoulé (90m par défaut). Apparemment, son objectif est de "savoir si votre machine avait des mises à jour qui devaient être appliquées sans l'exécuter de manière interactive", donc en gros, c'est "vérifier si des packages peuvent être mis à jour" et non pas "actualiser la liste des packages que je pourrais mettre à jour" comme vous m'attendrais.

Donc, si vous exécutez yum check-update Et obtenez ceci:

$ Sudo yum check-update
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile

packagename      version     repo

Cela signifie que check-update n'est pas pas en train d'effectuer une mise à jour, comme le fait apt-get update.

Vous pouvez voir combien de temps il faudra avant de faire le "rafraîchissement automatique" que toutes les commandes font en dessous, en exécutant this : yum repolist enabled -v

Solution de contournement:

tilisezyum clean expire-cache (ou yum clean all) d'abord, puis toutes les futures commandes yum actualiseront automatiquement le cache "lors de l'exécution". . Étant donné que les futures commandes yum actualisent le cache, ceci est en pratique identique à apt-get update.

Ou changez le paramètre metadata_expire de yum.conf à moins que les 90 minutes par défaut, je suppose.

Ou exécutez yum makecache (À partir des autres réponses) qui semble supprimer le cache et en extraire de nouvelles copies. Mais cela semble prendre plus de temps que clean all (?) FWIW.

23
rogerdpack

C'est la commande pour mettre à jour le cache local, d'où

yum makecache

semble être la commande que vous recherchez, selon Travailler avec Yum cache .

Normalement, vous ne devriez pas avoir besoin d'exécuter cette commande directement car yum vérifie et actualise déjà les métadonnées en fonction de la valeur metadata_expire dans yum.conf, la valeur par défaut étant de 6 heures.

Cependant, il peut y avoir au moins un cas d'utilisation, qui se trouve dans un playbook Ansible, car vous n'avez aucun moyen dans un playbook Ansible de mettre à jour le cache uniquement sans installer de packages (Voir Problèmes Ansible 461 = et 40068 , qui semble être corrigé dans la version 2.8, 4618 ). Le module ysible anum nécessite un nom de package pour que l'option 'update_cache: yes' ait un effet. Donc, comme alternative 'command: yum makecache' peut être utilisé dans le playbook.

dnf possède également une commande makecache, bien qu'il soit également possible de forcer la synchronisation des métadonnées avec le commutateur --refresh.

2
Tufan K