12月 10

ようやく時間ができたので以前から興味あった Ruby とか Ruby on Rails いじって遊んでます。Ruby on Rails 4 アプリケーションプログラミングという本がよさげなのでこの本で勉強中(というか遊び中)なのですが、第1章 導入編 の Ruby や Ruby on Rails をインストール・セットアップしている箇所でいくつか躓いた・気になった点があったのでそれらについてメモっておきます。

1.Gem::RemoteFetcher::FetchError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

railsとかbundleコマンド使って何かしようとするとこのエラー(SSL証明書認証失敗?)が表示されて何もできなくなることがあります。対策がココにありました。同ページ中程の“Manual solution to SSL issue”に対応の仕方があります。簡単に説明すると、新しい証明書(AddTrustExternalCARoot-2048.pem)を入手して、RubyGems の証明書ディレクトリ(例えば、C:\Ruby21-x64\lib\ruby\2.1.0\rubygems\ssl_certs)に新しい証明書をコピーでOK。これで”certificate verify failed”のエラーは出なくなります。

この他に RubyGems のバージョンをアップグレードすれば解決するという話もありますが、Windows版RubyGemsの2.4系はバグ報告があって推奨していないらしいです。(RubyInstaller 同梱 RubyGems は 2.2.2)

あとは、Gemfile の source ‘https://rubygems.org’ を http にすればOKってのも見つけましたが…個人的にhttpsをhttpにすれば解決ってのはイヤな感じです。

2.No source of timezone data could be found. (TZInfo::DataSourceNotFound)

これは Windows 64bit 版 Ruby 固有らしいです。
Gemfile の
gem ‘tzinfo-data’, platforms: [:mingw, :mswin]

gem ‘tzinfo-data’, platforms: [:mingw, :mswin, :x64_mingw]
にして bundle update すればOK。

3.DL is deprecated, please use Fiddle が表示される件

例えば rails -v でバージョン情報を表示するときに”DL is deprecated, please use Fiddle”と表示されます。これについて『たのしいRuby 第4版』正誤表に少し解説があります。原因は Ruby Installer for Windows に添付されている readline ライブラリが DL という古いライブラリを使っているために表示される警告で、使用上は特に問題ないそうです。deprecated なので新しいバージョンではFiddleになって表示されなくなるかもしれませんね。(放置かもしれません)

preload preload preload