centos7
chronyd
rails5,

CentOS7の仮想環境上でRails動かしていて Bundle installに失敗する場合

bundle installに失敗してたのを解決した話

日付がずれていた

研修環境でMacOSにVirtualBoxをインストールしその上でCentOS7を使っていました。
かれこれ2ヶ月以上その環境で使っていましたが、ほぼ仮想環境もマシンもシャットダウンしていません。
ある朝気がつくと、Rails上で取得している日付が1週間以上ずれていました。

この原因はちゃんと調べていないのですが、仮想環境をシャットダウンせずにマシンをスリープ(画面を閉じる)させるタイミングで少しずつ時間がずれていたようです。

エラー発生

その日にコマンドライン上で 
bundle install
してみました。

そうすると SSL 関係のエラーがでました。長々と表示されますが

Could not verify the SSL certificate for https://rubygems.org/.
 〜中略〜
         edit your Gemfile sources and change 'https' to 'http'

最後にこのように表示されました。

解決せず

このエラーメッセージをGoogle検索してみると
SSL証明書のエラーだから pem(証明書)ファイルをダウンロードして云々とでてきます。
しかしそれらを実行してみても解決しませんでした。
あちこちのディレクトリの権限がないと表示されます。

日付を合わせて解決

それで当初の日付がずれていることを思い出し、日付を合わせることにしました。

今回は chrony をインストールしました。
chronyについて詳しくはCentOS7の時刻をChronyを使ってNICTと同期するを参照させていただきました。

sudo yum install chrony

sudo systemctl start chronyd.service

最初のyum installでchronyをインストールすると何度か問い合わせがあるので 「y」を選択します。
ひとまず2番目のコマンドでchronydを起動するとそのうちタイムサーバと同期して日付を合わせてくれます。
その後 date コマンドを実行すると無事日付の同期を確認しました。

同じエラーが出ていた2つの仮想環境で無事 bundle install 成功しました。

ChronyはCentOS7のisoでminimal版以外だと最初から入っているようです。
限られた環境かもしれませんがこんな原因もあるということで。

追記

bundle install だけでなくgem installでも同じく

$ gem install rails
ERROR:  SSL verification error at depth 0: certificate is not yet valid (9)
ERROR:  Certificate /C=US/ST=California/L=San Francisco/O=Fastly, Inc./CN=f2.sha
以下同じようなSSL verificationエラー

が発生した場合、日付のズレを直すと無事gemでもinstallが実行できました。