問題
シナリオ 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, inmain() 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