GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Problem „Metadatendatei stimmt nicht mit Prüfsumme überein“, wenn Yum das Paket installiert oder aktualisiert

Das Problem

Szenario 1:

Der Benutzer kann „yum install oracle-rdbms-server-11gR2-preinstall“ nicht ausführen.

Das yum versucht, die neusten Metadaten herunterzuladen („http://public-yum.oracle.com/repo/OracleLinux/OL6/latest/x86_64/repodata/primary.xml.gz“ ) und lehnt dies mit der Fehlermeldung „[ Errno -1] Metadatendatei stimmt nicht mit Prüfsumme überein“. Daraufhin versucht yum den nächsten Mirror, wo es auf den gleichen Fehler stößt, und geht zum nächsten Mirror und so weiter, bis es alle Mirrors ausprobiert hat und mit dem Fehler „No more mirrors to try“ endet.

# 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.

Szenario 2:

Das Ausführen des uln_mirror-Skripts ist ebenfalls mit dem Fehler „Metadatendatei stimmt nicht mit der Prüfsumme überein“ fehlgeschlagen

#/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

Die Lösung

Der yum-Server enthält Metadaten und eine Prüfsumme für die Metadaten. Nach dem Herunterladen von Metadaten und Prüfsumme vergleicht der Yum-Client die beiden, um sicherzustellen, dass sie konsistent sind. Es sollte Probleme mit dem Zwischenspeichern von Metadaten geben, was zu dem Fehler führt, dass yum versucht, die neuesten Metadaten herunterzuladen.

Möglichkeit 1

Versuchen Sie zunächst, alle Yum-Caches zu löschen:

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

Option 2

Metadaten bereinigen:

# yum clean metadata

Möglichkeit 3

Bearbeiten Sie die Datei /etc/yum.conf und fügen Sie eine Zeile „http_caching=packages hinzu “ wie folgt:

# 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. Warten Sie einfach, bis der HTTP-Cache abgelaufen ist.

2. Geben Sie für jede Datei ein „wget“ mit der No-Cache-Option aus:

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

3. Konfigurieren Sie yum vorübergehend so, dass keine zwischengespeicherten Versionen von Dateien verwendet werden. Bearbeiten Sie /etc/yum.conf und fügen Sie die folgende Zeile hinzu:

http_caching=none


Linux
  1. Metadatendatei stimmt nicht mit Prüfsumme überein – YUM-Fehler!

  2. Mapping von Metadaten mit Avconv funktioniert nicht?

  3. Crontab-Problem:Cron-Job funktioniert nicht, wenn der Prozentsatz verwendet wird

  4. Eine Zeile nur an eine Datei anhängen, wenn sie noch nicht existiert

  5. Der Linux-Befehl sed ändert die Zieldatei nicht

Was zu tun ist, wenn der Fehler „Repository hat keine Release-Datei“ in Ubuntu angezeigt wird

Warum zeigt /etc/issue mir Ubuntu und nicht Lubuntu?

open() in Python erstellt keine Datei, wenn sie nicht existiert

Kann read(2) Null zurückgeben, wenn es nicht bei EOF ist?

Wann tritt bei der Installation über yum der Fehler „Error:Nothing to do“ auf?

Warum sagt rm manual, dass wir es ohne Argumente ausführen können, wenn das nicht stimmt?