SAKURAのVPS CentOS6.6 で yum update が失敗する


「Linux初心者がSakuraのVPSに、nginxサーバーやらPercona-Serverやらphp-fpmやらiptablesやらwordpressやらを入れまくった結果、"yum update"が
”http://ftp.riken.jp/Linux/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found"
になって、何も追加で入れられなくなってしまったときにやったこと」を記録しておきます。

結論からいうと、"/etc/yum.repos.d/epel.repo"の内容を編集するだけです。

[epel]
name=EPEL RPM Repository for Red Hat Enterprise Linux
baseurl=http://ftp.riken.jp/Linux/
enable=0

こうなっているのを

[epel]
name=EPEL RPM Repository for Red Hat Enterprise Linux
baseurl=http://ftp.riken.jp/Linux/centos/6/centosplus/x86_64/
enable=0

こう変更します。

これだけだとドラマにならないので、この変更情報をどうやって取得したかを説明します。

あるURLが見つからないという時、私の場合まず見つからないURLを直接探してみて(これは見つからない)、だんだんとURLを短くして、どこまでなら見つかるかを探します。

http://ftp.riken.jp/Linux/repodata/repomd.xml  ← 見つからない
http://ftp.riken.jp/Linux/repodata/       ← 見つからない
http://ftp.riken.jp/Linux/            ← 見つかった!!

この時に見えるのは、こんな感じ。

この中から、今回の問題に関係ありそうなリンクを「力技で」探します。

今回は「エラー: Cannot retrieve repository metadata(repomd.xml) for repository: epel.」というメッセージから、"repomd.xml"が見つからないんだな、ということは分かるのですが、それだけではリンクを探しきれません。そこで着目したのは、もともとのURLではLinuxの直下に"repodata"フォルダが有ったらしいことです。つまり「Linux直下で管理していたが、必要に応じて分類を追加した」ということが推測されます。そこでまずはこのリストから"epel"を探しますが、見つかりません。ここで挫けそうになりますが、ぐっと堪えて、何となく眺めていくと"centos"ディレクトリが見つかりました。開いてみるとその下にはバージョンが並んでいます

これは何となく期待できそうです。

そのあと、ピンポイントのバージョン"6.6"を開いて「このバージョンはもう古いです。今は"6"を参照してください。」などと書かれたreadmeファイルに翻弄されながら、深く潜っていくと、"/Linux/centos/6/centosplus/x86_64/repodata”に目指すファイル"repomd.xml"が見つかりました。

これが正しいかどうか、保障などありませんが、ここまでの道のりで何となく手応えを感じつつ、”Linux"を接合点にして"epel.repo"を編集し、その後”yum clean all","yum update"で問題なくレポジトリを更新でき、目的の”MongoDB"をインストールすることができました。

以上です。ご参考になれば幸いです。

p.s. あ、リンクの中の"x86_64"のところは"i386"の選択肢もありましたが"arch"コマンドで"x86_64"を確認しました。