GNU/Linux >> Linux の 問題 >  >> Linux

Yum がパッケージをインストールまたは更新する際の「メタデータ ファイルがチェックサムと一致しない」問題

問題

シナリオ 1:

ユーザーは「yum install oracle-rdbms-server-11gR2-preinstall」を実行できません。

yum は最新のメタデータ (「http://public-yum.oracle.com/repo/OracleLinux/OL6/latest/x86_64/repodata/primary.xml.gz」) をダウンロードしようとし、「[ Errno -1] メタデータ ファイルがチェックサムと一致しません。これにより、yum は同じエラーが発生した次のミラーを試行し、すべてのミラーを試行して「No more mirrors to try」というエラーで終了するまで、次のミラーに進みます。

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

シナリオ 2:

uln_mirror スクリプトの実行も「メタデータ ファイルがチェックサムと一致しません」というエラーで失敗しました

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

解決策

yum サーバーには、メタデータとメタデータのチェックサムが含まれています。メタデータとチェックサムをダウンロードした後、yum クライアントは 2 つを比較して一貫性があることを確認します。 yum が最新のメタデータをダウンロードしようとするエラーにつながる、メタデータのキャッシュに問題があるはずです。

オプション 1

まず、すべての yum キャッシュを削除してみてください:

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

オプション 2

クリーンなメタデータ:

# yum clean metadata

オプション 3

ファイル /etc/yum.conf を編集 「http_caching=packages」という行を追加します 」 以下のように:

# 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. http キャッシュがタイムアウトするまで待ちます。

2. 各ファイルに対して、no-cache オプションを指定して「wget」を発行します。

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

3. キャッシュされたバージョンのファイルを使用しないように yum を一時的に構成します。 /etc/yum.conf を編集し、次の行を追加します:

http_caching=none


Linux
  1. メタデータファイルがチェックサムと一致しません– YUMエラー!

  2. / etc / issueにLubuntuではなくUbuntuが表示されるのはなぜですか?

  3. Crontab の問題:パーセンテージを使用すると Cron ジョブが機能しない

  1. Python の open() は、ファイルが存在しない場合、ファイルを作成しません。

  2. Linux sed コマンドでターゲット ファイルが変更されない

  3. ファイル競合の yum トランザクション チェックを無効にする

  1. パターン マッチが bash スクリプトで機能しない

  2. 画像を wget すると、画像ではなくファイルが返されるのはなぜですか?

  3. ファイルを保存すると、メタデータはどこに移動しますか?