Ruby2.1にアップデートしたら、gem installが使えなくなってしまったのを解消した。(Win)

広告

先日バージョンアップしたRuby 。元々使い出したのが去年の初めからだったので、最初からRuby2.0をインストールして使っていました。そちらをRuby2.1にバージョンアップしたら、gem installがそのままでは使えなかったので、対応をした時の記録。

ruby2.1にバージョンアップしたら、gemが使えなくなっていた。(Windows7環境)

ひさしぶりにrspecを利用しようとしたら、rspecがインストールされていない事が判明し、前回の記憶を元にコマンドプロンプトで、「gem install rspec」を実行したら、以下のエラー。

D:\dev\Ruby\gem install rspec
ERROR:  Loading command install (LoadError)
        193: %1は有効な Win32 アプリケーションではありません。  -D:/dev/Ruby/lib/ruby/2.1.0/i386-mswin32_100/zlib.so-mswin32_100/zlib.so
ERROR:  While executing gem ... (NoMethodError)
    undefined method 'invoke_with_build_args' for nil:NilClass

実は、最初は、gemsがインストールされていないと勘違いして、以下のURLを参考にgemの再インストールをしてしまった。

[ruby] RubyGems をインストールする(for Windows)-A More Beautiful day

 が、何も変わらず……

再度先ほどのエラーメッセージで検索をしました。確かにzlibがなんか足りないみたいなメッセージがでてます。(こちらに似たような症例が)

そこで、zlibをWindowsにインストール。以下のページを参考にプリコンパイル版をダウンロード、解凍しました。(今日の時点では、1.2.8が最新版らしいので、zlib128-dll.zip)

2. インストール(Windowsプリコンパイル版)

インストール先として上記の記事では、user/libを指定しているのですが、具体的にどこを指しているのかピンときません。結局、rubyのインストールフォルダの直下にあるbinに上記のダウンロードファイルを解凍したフォルダにあった「zlib1.dll」を上書きしました。(同名ファイルがここにあったので)

その後再度gem install rspecを実行

Fetching: rspec-core-2.14.8.gem (100%)
Fetching: diff-lcs-1.2.5.gem (100%)
Fetching: rspec-expectations-2.14.5.gem (100%)
Fetching: rspec-mocks-2.14.6.gem (100%)
Fetching: rspec-2.14.1.gem (100%)
Successfully installed rspec-core-2.14.8
Successfully installed diff-lcs-1.2.5
Successfully installed rspec-expectations-2.14.5
Successfully installed rspec-mocks-2.14.6
Successfully installed rspec-2.14.1
5 gems installed
Installing ri documentation for rspec-core-2.14.8...
Installing ri documentation for diff-lcs-1.2.5...
Installing ri documentation for rspec-expectations-2.14.5...
Installing ri documentation for rspec-mocks-2.14.6...
Installing ri documentation for rspec-2.14.1...
Installing RDoc documentation for rspec-core-2.14.8...
Installing RDoc documentation for diff-lcs-1.2.5...
Installing RDoc documentation for rspec-expectations-2.14.5...
Installing RDoc documentation for rspec-mocks-2.14.6...
Installing RDoc documentation for rspec-2.14.1...

ようやくうまくいきました。2.0がインストールされた環境(Rubyというフォルダにインストールしています)に2.1をインストールするとRuby/lib/rubyの配下やRuby/lib/ruby/gemsの配下などに、バージョンごとのフォルダが作成され、そのバージョンごとのフォルダの下に、それぞれのバージョン用のgemファイル等が作られているようです。gemパッケージで必要な物は随時プラスしていく必要がありそうです。

以下の2冊の本で、Ruby独学してますが、最新版を使い続けているとやはりWebでの情報収集が不可欠ですね。

 

たのしいRuby 第4版
たのしいRuby 第4版

posted with amazlet at 14.03.08
高橋 征義 後藤 裕蔵
ソフトバンククリエイティブ
売り上げランキング: 17,681
メタプログラミングRuby
メタプログラミングRuby

posted with amazlet at 14.03.08
Paolo Perrotta
アスキー・メディアワークス
売り上げランキング: 94,995

広告