しばらくメンテナンスをしていなかったサーバーを、久しぶりにyumでアップデートしたら、エラーが表示されアップデートできませんでした。
その時の対処を備忘録として残しておきます。
( この記事は、CentOS 5 を基本に記載されていますが、CentOS 6 、 ScientificLinux 6 でも 同じような対処で実施することができます。 )
Errno 14の対処
しばらくメンテナンスしていなかったサーバーを、yumでアップデートしようとしたら、以下のようなエラーが発生しました。
$ yum update
Loaded plugins: downloadonly, fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.nara.wide.ad.jp
* epel: ftp.iij.ad.jp
* extras: centos.mirror.cdnetworks.com
* ius: pancks.sothatswhy.org.uk
* updates: data.nicehosting.co.kr
http://img.cs.montana.edu/linux/centos/5.4/updates/SRPMS/repodata/repomd.xml: [Errno 14] HTTP Error 404: Not Found
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: Update-SRPM. Please verify its path and try again
|
[ エラー箇所の英文訳 ]
http://img.cs.montana.edu/linux/centos/5.4/updates/SRPMS/repodata/repomd.xml: [Errno 14] HTTP エラー 404: Not Found
他のミラーサイトを確認中。
エラー:リポジトリの中のUpdate-SRPMで指定しているサイトには、メタデータ(repomd.xml)がありません。パスを確認して再度実行してください。
エラーの内容は、上記の英文そのままです。
つまりは、リポジトリの設定が正しくないようなので、確認してね・・という感じです。
リポジトリの設定は、
/etc/yum.repos.d
の配下にあるINIファイル形式のテキストファイルで設定します。
- Update-SRPM を定義しているファイルを探す
先のエラー情報からUpdate-SRPM を定義しているパスがあやしいことはわかっていますから、まず、その定義しているファイルを/etc/yum.repos.dの配下から探します。
$ grep Update-SRPM /etc/yum.repos.d/*
/etc/yum.repos.d/CentOS-Base.repo:[Update-SRPM]
|
/etc/yum.repos.d/CentOS-Base.repo で定義していることがわかりました。
- CentOS-Base.repo のファイルを編集する
CentOS-Base.repo ファイル内でUpdate-SRPM の定義箇所を編集します。
/etc/yum.repos.d/CentOS-Base.repo
$ grep Update-SRPM /etc/yum.repos.d/*
/etc/yum.repos.d/CentOS-Base.repo:[Update-SRPM]
|
/etc/yum.repos.d/CentOS-Base.repo で定義していることがわかりました。
...
[Update-SRPM]
name=CentOS5 - Update SRPMS
baseurl=http://img.cs.montana.edu/linux/centos/5.4/updates/SRPMS/
[extras-SRPM]
name=CentOS5 - extras SRPMS
baseurl=http://img.cs.montana.edu/linux/centos/5.4/extras/SRPMS/
[os-SRPM]
name=CentOS5 - os SRPMS
baseurl=http://img.cs.montana.edu/linux/centos/5.4/os/SRPMS/
...
|
http://img.cs.montana.edu/linux/centos/5.4/updates/SRPMS/ のパスが本当に無いのか確認します。
実際に確認してみると、上記のパスは本当に無く、http://img.cs.montana.edu/linux/centos/5.4/updates/i386/と間違って記載している模様なので、ここでは、先のとおり編集することにします。
また、extras-SRPM、os-SRPMの定義箇所でも同じ設定になっていますから、同じように編集しておきます。
編集を終えたら、ファイルを保存します。
上記の定義は、SRPM関連なので、
yum update では不要でしょう。
以下のように
enabled=0を設定して、この定義自体を無効にするのも一つの手段です。
...
[Update-SRPM]
name=CentOS5 - Update SRPMS
baseurl=http://img.cs.montana.edu/linux/centos/5.4/updates/SRPMS/
enabled=0
[extras-SRPM]
name=CentOS5 - extras SRPMS
baseurl=http://img.cs.montana.edu/linux/centos/5.4/extras/SRPMS/
enabled=0
[os-SRPM]
name=CentOS5 - os SRPMS
baseurl=http://img.cs.montana.edu/linux/centos/5.4/os/SRPMS/
enabled=0
...
|
そもそもが、ソースコードをダウンロードする際に、随分以前に設定していたものを、すっかり削除するのを忘れていて、
システムアップデート(yum update)のエラーで気づいたという・・・なんともお粗末な結果なのです。
これ以外にも古いCentOSの理研のアドレスを設定していた箇所も同じようにエラーが発生して、いかにメンテナンスが行き届いていなかったが
良くわかる結果で情けないです。
古いCentOSの理研のアドレス先は、どんどん消されていくので注意が必要です。
- 再度、yumを実行してみる
$ yum clean all
$ yum update
...
|
yumで使っているバッファ領域を全クリアしている(yum clean all)点に注意してください。
変な情報が残っていると、また、エラーになる可能性があるので、一旦、クリアしておきます。
上記のエラーは、随分以前にこのサーバーをいじっていたい時に、ソースコードのパッケージをyumでインストールしたかったので設定していたのですが、
その設定そのものが、今では、不要なので、最終的には、[Update-SRPM]、[extras-SRPM]、[os-SRPM]の定義部分を全削除しました。
基本的には、yum で Errno 14 が出力される場合は、ファイルが存在しない場合なので、ほとんどはリポジトリの設定に誤りがある場合でしょう。
上記の手順は、非常に簡単な手順ながら、基本的なやり方なので参考になれば幸いです。
ご利用のブラウザは、広告ブロック(AdBlockなど) が適用となっていませんか?
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない、検索ができないことがあります。
関連記事 :
コメントを投稿 :