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

86

Debian apt-get updateva chercher et met à jour l'index du paquet. Parce que je suis habitué à cette façon de faire, j'ai été surpris de constater que cela yum updatefait tout cela et met à niveau le système. Cela m'a rendu curieux de savoir comment mettre à jour l'index du paquet sans rien installer.

Tshepang
la source

Réponses:

90

La check-updatecommande actualisera l'index du package et recherchera les mises à jour disponibles:

yum check-update
remuer
la source
3
Cette commande vous permet de déterminer si des mises à jour sont disponibles pour vos packages installés . yumrenvoie une liste de toutes les mises à jour de paquets de tous les référentiels, le cas échéant. apt-get updateactualise les fichiers d'index mais yum check-updatene le fait pas.
SuB
Cela ne fonctionne pas si yuma déjà été exécuté récemment, voir d'autres réponses pour des alternatives ...
rogerdpack
29

Alors que yum check-updateva vérifier les mises à jour pour les paquets installés, s'il doit être actualisé, la plupart des autres commandes le seront aussi.

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

James Antill
la source
1
Je ne comprends pas la première phrase. Pouvez-vous reformuler peut-être?
Tshepang
8
Cela signifie que d'autres yumcommandes, par exemple yum upgrade, s'exécuteront automatiquement yum check-updatesi nécessaire. En d'autres termes, yum upgradeest fondamentalement la même chose que apt-get update; apt-get upgrade.
Mikel
Je vous remercie! yum check-update ne m'aide pas contre les erreurs 404. Mais miam makecache aide! Énorme merci!
socketpair
L'original concernait la mise à jour automatique des repodata pour présenter les dernières informations (quelque chose qu'apt-get ne fait pas, ou du moins ne l'a pas fait en 2011). Après le montage, c'est maintenant étrangement vide de sens :(.
James Antill
Pourquoi n'est-il pas recommandé de courir yum makecache? Il est répertorié dans la page de manuel et semble fonctionner de la même façon apt-get update... notez également que l' yum check-updateactualisation n'est pas toujours effectuée, voir les autres réponses, FWIW :)
rogerdpack
21

Malheureusement, yum check-updatepar défaut, les modifications ne sont pas prises en compte par les référentiels distants tant que yum.confle paramètre metadata_expire du paramètre n'est pas écoulé (90 m par défaut). Apparemment, son objectif est de "savoir si votre machine comportait des mises à jour devant être appliquées sans l'exécuter de manière interactive", donc il s'agit en gros de "vérifier si des packages pouvant être mis à jour sont" non "actualisez la liste des packages que je pourrais mettre à jour" en tant que J'attendais.

Donc, si vous courez yum check-updateet 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'effectue pas de mise à jour, comme c'est le apt-get updatecas.

Vous pouvez voir combien de temps cela prendra avant de faire le "rafraîchissement automatique" que toutes les commandes font en dessous, en lançant ceci :yum repolist enabled -v

Solution de contournement:

utilisez yum clean expire-cache (ou yum clean all) d’abord, toutes les futures commandes yum actualiseront automatiquement le cache "à l’exécution". . Comme les futures commandes yum actualisent le cache, il s’agit en pratique de la même chose que apt-get update.

Ou modifiez le paramètre metadata_expire de yum.conf en dessous de la valeur par défaut 90min, je suppose.

Ou exécutez yum makecache(à partir des autres réponses) ce qui semble enlever le cache et déroulez de nouvelles copies juste à ce moment-là. Mais cela semble prendre plus de temps que clean all(?) FWIW.

rogerdpack
la source
2
Vous ne savez pas pourquoi cette réponse croupit au fond. Cela semble être la réponse évidente et simple.
cbmanica
2

C’est la commande pour mettre à jour le cache local, donc

yum makecache

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

Normalement, vous n'avez pas 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 6 heures.

Cependant, il peut y avoir au moins un cas d'utilisation, qui se trouve dans un livre de lecture Ansible, car vous ne pouvez pas mettre ce cache en mémoire uniquement pour mettre à jour le cache sans installer de paquet (voir Ansible, numéros 33461 et 40068 , ce qui semble être le cas). être corrigé dans la version 2.8, 46183 ). Le module yum Ansible nécessite un nom de package pour que l'option 'update_cache: yes' ait un effet. Donc, une alternative 'commande: yum makecache' peut être utilisée dans le livre de jeu.

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

Tufan K
la source
Cette réponse existante mentionne déjà yum makecache; Peut-être pourriez-vous développer votre réponse pour la rendre plus utile, par exemple en expliquant pourquoi ce yum makecachen'est pas recommandé ou l' dnféquivalent.
Stephen Kitt