KITA Eng.

北海道でサーバー技術者として歩み出したひとが綴るblog。

rbenvでruby2.3.0をインストールしようとしたらハマった。

未開の地だったSQL文に慣れ始めた今日この頃です。 Ruby on Railsな環境の構築とか、運用のところにも首を突っ込めるようにと思って、仮想環境に環境作り始めましたが、rubyのインストールで躓きました。まさか…。

rubyのインストール方法はなんだかいろいろあるようですが、rbenvを使うのがバージョンをいろいろ同居させて、切り替えて使うのに便利らしいので、rbenvを使って入れてみることにしました。rbenvのインストールやら、関連するもろもろのインストールやらは、いくらかのサイトを見比べながら進めたら、サクサクと進みました。

が……、さて、rbenvでruby2.3.0をインストールしてやるぜ!と意気込んで、

[root@www-test ~]# rbenv install 2.3.0
Downloading ruby-2.3.0.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.bz2
error: failed to download ruby-2.3.0.tar.bz2

BUILD FAILED (CentOS release 6.7 (Final) using ruby-build 20151230)

ってなって、全然できない…

Google先生も微妙な回答しかしてくれないので、とりあえず、"https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.bz2"をwgetしてみたら…。

[root@www-test ~]# wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.bz2
--2015-12-23 16:02:37--  https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.bz2
Resolving cache.ruby-lang.org... 103.245.222.233
Connecting to cache.ruby-lang.org|103.245.222.233|:443... connected.
ERROR: cannot verify cache.ruby-lang.org’s certificate, issued by “/C=BE/O=GlobalSign nv-sa/CN=GlobalSign CloudSSL CA - SHA256 - G3”:
  Issued certificate not yet valid.
To connect to cache.ruby-lang.org insecurely, use ‘--no-check-certificate’.

んだとっ!wgetでもダウンロードできないだと…。となりました。 この状態で、しばらくいろいろGoogle先生に尋ね続けるもなかなか打開策が見つからない……

ERRORに続く部分とか、rbenvとかwgethttpsとかで尋ねても、それらしい答えが見つからず……モヤモヤ。

が、なんかひときわ目立っている気がする"Issued certificate not yet valid."で探してみるとこんなものが見つかりました。

serverfault.com

なにやら、お前のPCの時計はあってるのか?というようなことを指摘されているようですので、そんな馬鹿なと思いながらも確認してみると…。

[root@www-test ~]# date
Wed Dec 23 16:03:16 JST 2015

なんじゃこりゃ!盛大にくるっている。今は2016年だぞ!お前はまだ年越ししてないのか!って状態です。そういえば、Virtualマシンを保存状態で停止してから、年明けて起動したの今日が初めてだったかも……

ntp動いてたら勝手に合うだろうにと思ったら、ntpd起動してなかったです。

[root@www-test ~]# service ntpd start
Starting ntpd:                                                        [  OK  ]
[root@www-test ~]# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+next.kkyy.me    133.243.238.243  2 u    -   64    1   55.901   -0.165   0.000
-routerida1.sopr 133.243.238.242  2 u    -   64    1   69.096   -3.427   2.625
*108.61.223.189. 10.84.87.146     2 u    -   64    1   55.360   -0.898   0.000
+secure.opticner 118.143.17.82    2 u    -   64    1   63.623    1.371   0.443

[root@www-test ~]# date
Tue Jan  5 12:34:36 JST 2016

はい。ちゃんとあいました。 ここで意気揚々と、もう一度rbenvでruby2.3.0をインストール!

[root@www-test etc]# rbenv install 2.3.0
Downloading ruby-2.3.0.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.bz2
Installing ruby-2.3.0...
Installed ruby-2.3.0 to /usr/local/rbenv/versions/2.3.0

できた!その後Railsとかもうまく入って、無事環境を作れました。まさか時間ずれが影響するとは……

実は、最初のエラーメッセージの中にもヒントはあって、

--2015-12-23 16:02:37-- https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.bz2

ってrbenv install 2.3.0の実行結果の2行目にあります。明らかに時間が変。

それから、

Issued certificate not yet valid.

って冷静に読めば、「まだ証明書が有効じゃないぜ」って言ってる気がしますね。実は、証明書が変なのかとは思って、ブラウザで、https://cache.ruby-lang.org/pub/ruby/2.3/にアクセスして、証明書の情報を見てみたりはしましたが、普通に大丈夫そうだってなって終わったんですが…。

さっきもう一度見てみたら、なんと具合の悪いことに、証明書の有効期限の開始日が2016/1/4になってました。そりゃ、2015年に暮らしていた斉藤のVirtualマシン上では、有効でないといわれても仕方がない。

ということで、今回の教訓。

  • エラーメッセージの英文は冷静に読みましょう
  • 時間合わせはお忘れなく!