RubyInstallerでgemをインストールできない!!

とある事情でWindows7向けに簡単なアプリケーションを作ることになりました。
「簡単な」ものならRubyで短時間でできると見込み、Rubyで要求仕様通りのアプリケーションを作成することにしました。
Tkというライブラリも利用し、UIも問題ありませんでした。

いざ、本番で利用するPCにセットアップを始めたのですが、1台だけgemがインストールできませんでした。
rubygemsにSSLで接続する際、エラーとなってしまうようなのですが、原因がわからず、Webの情報もいくつかトライしてみましたが解決しませんでした。

環境は、

  • クライアント:Windows7 Home Premium 64bit
  • Ruby: RubyInstaller 2.2.3(x64)
  • インストールしたかったgem: win32-sound

です。
ちなみに、RubyInstallerはバージョンを下げて2.1.7も試しましたが同じ結果でした。

原因調査に時間を使う余裕もなかったので、1台だけはgemをローカルにダウンロードしてからインストールすることにしました。

まずはrubygemsのサイトから、win32-soundをダウンロードします。

続いて、インストールを実行します。

> gem install win32-sound --local <gemのパス>

すると、依存しているgem ffiがないと怒られるので、同様にインストールしますが、次はDevKitが必要と言われます。
DevKitはRubyInstallerのサイトでダウンロードできますので、ダウンロードし、適当なフォルダに展開します。
このとき、カレントディレクトリにフォルダやファイルが多数作成されてしまいますので、フォルダを作成し、その中で展開したほうがいいでしょう。

展開したディレクトリの中にdk.rbというファイルがあります。このファイルと同じディレクトリに移動し、 下記のコマンドを実行してDevKitをインストールします。

> ruby dk.rb init
> ruby dk.rb install

これでようやく、gemをローカルでインストールできる環境になりました。

> gem install ffi --local <ffi の gemのパス>
> gem install win32-sound --local <win23-sound の gemのパス>

以上。覚書でした。
やはり、Windowsで ruby を使うのは何かと大変な気がします・・・が、勉強になったし、ネタとしてこの記事も書けたということで前向きに考えます。