表題の通り。CentOS-6.7でMongoDBをインストールしようとしたのだが失敗する。原因を探していた時のメモ。
■ 環境
- CentOS 6.7
- MongoDB 3.0.6
■ 現象
`yum`で、MongoDB-3.0系をインストールしようとした。参照したのは下記。
Install MongoDB on RedHat Enterprise or CentOS Linux
http://docs.mongodb.org/master/tutorial/install-mongodb-on-red-hat/
$ cat /etc/yum.repos.d/mongodb.repo
[mongodb]
name=MongoDB Repository
baseurl=http://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/
gpgcheck=0
enabled=1
これで実行したところ、下記のようにエラーが発生。
$ sudo yum search mongodb
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.iij.ad.jp
* extras: ftp.iij.ad.jp
* updates: ftp.iij.ad.jp
https://repo.mongodb.org/yum/redhat/6.7/mongodb-org/3.0/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found"
他のミラーを試します。
エラー: Cannot retrieve repository metadata (repomd.xml) for repository: mongodb-org-3.0. Please verify its path and try again
レポジトリのURLが見つからない、ようである。
■ $releasever
この変数に何が入るのかを見てみると、前述の実行例では”6.7″が入っている。CentOSではないが、RHELのマニュアルには下記のように書かれている。
問題はないように思えるが、以前からこの値が何を返しているのかは把握していないので詳細はわからない。
■ MongoDB Repository
`yum`でアクセスするURLを見てみると、下記の通り。
“6.7“ではなく”6“が正しいようである。それ以降のURLも問題がなさそうである。
■ 暫定対応
`/etc/yum.repos.d/mongodb.repo`を下記のように修正して一旦の対応を図る。
$ cat /etc/yum.repos.d/mongodb.repo
[mongodb]
name=MongoDB Repository
baseurl=http://repo.mongodb.org/yum/redhat/6/mongodb-org/3.0/x86_64/
gpgcheck=0
enabled=1
これでインストールも可能である。しかし正しい対応であるとは思えない。
■ 再度$releasever
本来であれば”$releasever“では、”6“が取得できるのであろう。前述のRHELのマニュアルの最後に下記のような記載がある。
.repo ファイルでは、「Red Hat Enterprise Linux 6」 の代わりに以下を使用することができます:
name=$osname $releasever
ということであれば、やはり”$relasever“で返されるべき値は、今回で言えば”6.7“ではなく”6“あるはずだ。
以上。