GNU/Linux >> Tutoriels Linux >  >> Linux

Problème "Le fichier de métadonnées ne correspond pas à la somme de contrôle" lorsque Yum installe ou met à jour le package

Le problème

Scénario 1 :

L'utilisateur ne peut pas effectuer "yum install oracle-rdbms-server-11gR2-preinstall".

Le yum essaie de télécharger les dernières métadonnées (“http://public-yum.oracle.com/repo/OracleLinux/OL6/latest/x86_64/repodata/primary.xml.gz” ) et les rejette avec le message d'erreur “[ Errno -1] Le fichier de métadonnées ne correspond pas à la somme de contrôle ». Sur ce, yum essaie le miroir suivant où il rencontre la même erreur et passe au miroir suivant et ainsi de suite jusqu'à ce qu'il ait essayé tous les miroirs et se termine par l'erreur "Plus de miroirs à essayer".

# yum install oracle-rdbms-server-11gR2-preinstall
Loaded plugins: refresh-packagekit, security
ol6_UEK_base | 951 B 00:00
ol6_UEK_base/primary | 686 kB 00:09
ol6_UEK_base 29/29
ol6_UEK_latest | 1.2 kB 00:00
ol6_ga_base | 1.1 kB 00:00
ol6_ga_base/primary | 2.9 MB 00:34
ol6_ga_base 8029/8029
ol6_latest | 1.4 kB 00:00
ol6_latest/primary | 22 MB 04:48
http://public-yum.oracle.com/repo/OracleLinux/OL6/latest/x86_64/repodata/primary.xml.gz: [Errno -1] Metadata file does not match checksum
Trying other mirror.
ol6_latest/primary | 22 MB 04:42
http://public-yum.oracle.com/repo/OracleLinux/OL6/latest/x86_64/repodata/primary.xml.gz: [Errno -1] Metadata file does not match checksum
Trying other mirror.
Error: failure: repodata/primary.xml.gz from ol6_latest: [Errno 256] No more mirrors to try.

Scénario 2 :

L'exécution du script uln_mirror a également échoué avec l'erreur "Le fichier de métadonnées ne correspond pas à la somme de contrôle"

#/usr/bin/uln-yum-mirror
--snip--
rhnplugin.py:410:_getFile:RepoError: failed to retrieve repodata/update=einfo.xml.gz from ol6_x86_64_latest
error was [Errno -1] Metadata file does not match checksum :
Traceback (most recent call last):
File "/usr/bin/reposync", line 352, in 
main()
File "/usr/bin/reposync", line 256, in main
resultfile =3D repo.retrieveMD(ftype)
File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 1571, i=n retrieveMD : return self._retrieveMD(mdtype)
File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 1654, i=n _retrieveMD : size=3Dthisdata.size)
File "/usr/share/yum-plugins/rhnplugin.py", line 410, in _getFile : self.id, e)
RepoError: failed to retrieve repodata/updateinfo.xml.gz from ol6_x86_= 64_latest :error was [Errno -1] Metadata file does not match checksum

La solution

Le serveur yum contient des métadonnées et une somme de contrôle pour les métadonnées. Après avoir téléchargé les métadonnées et la somme de contrôle, le client yum compare les deux pour s'assurer qu'ils sont cohérents. Il devrait y avoir des problèmes avec la mise en cache des métadonnées, ce qui conduit à l'erreur où yum essaie de télécharger les dernières métadonnées.

Option 1

Essayez d'abord de purger tous les caches yum :

# yum clean all
# rm -rf /var/cache/yum/*
# yum repolist

Option 2

Nettoyer les métadonnées :

# yum clean metadata

Option 3

Modifier le fichier /etc/yum.conf et ajoutez une ligne "http_caching=packages ” comme ci-dessous :

# vi /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=3
http_caching=packages

# This is the default, if you make this bigger yum won't see if the metadata
# is newer on the remote and so you'll "gain" the bandwidth of not having to
# download the new metadata and "pay" for it by yum not having correct
# information.
# It is esp. important, to have correct metadata, for distributions like
# Fedora which don't keep old packages around. If you don't like this checking
# interupting your command line usage, it's much better to have something
# manually check the metadata once an hour (yum-updatesd will do this).
# metadata_expire=90m

# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d

1. Attendez simplement que le cache http expire.

2. Pour chaque fichier, lancez un "wget" avec l'option no-cache :

# wget --no-cache http://public-yum.oracle.com/repo/OracleLinux/OL6/latest/x86_64/repodata/primary.xml.gz 

3. Configurez temporairement yum pour ne pas utiliser les versions mises en cache des fichiers. Modifiez /etc/yum.conf et ajoutez la ligne suivante :

http_caching=none


Linux
  1. Le fichier de métadonnées ne correspond pas à la somme de contrôle - erreur YUM !

  2. Mapper les métadonnées avec Avconv ne fonctionne pas ?

  3. Pourquoi "zip" dans une boucle For fonctionne-t-il lorsque le fichier existe, mais pas lorsqu'il n'existe pas ?

  4. Pourquoi /etc/issue me montre-t-il Ubuntu et non Lubuntu ?

  5. Problème Crontab :la tâche Cron ne fonctionne pas lors de l'utilisation d'un pourcentage

Que faire lorsque vous voyez l'erreur "Le référentiel n'a pas de fichier de version" dans Ubuntu

read(2) peut-il renvoyer zéro lorsqu'il n'est pas à EOF ?

Ajouter une ligne à un fichier uniquement s'il n'existe pas déjà

Désactiver la vérification des transactions yum pour les conflits de fichiers

lorsque l'erreur "Erreur :rien à faire" se produit lors de l'installation via yum ?

Pourquoi le manuel rm dit-il que nous pouvons l'exécuter sans aucun argument, alors que ce n'est pas vrai ?