IronRuby
IronRubyとは、マイクロソフトのDLR開発チームの中の人が作った.NET Framework上で動作するRubyの実装である。 もともとはマイクロソフトによって管理されていたが、IronPythonとともにオープンソースコミュニティに譲渡され、ユーザーコミュニティにより開発と管理がなされている。
目次
互換性
2012年3月時点で最新のIronRuby 1.1.3 は、Ruby 1.9.2 互換となっており、Ruby 1.8.6 との互換性は捨てられている。
Ruby 1.8.6 との互換を希望するユーザーのために IronRuby 1.0 も継続して提供されているので、必要ならばそちらを使うこと。
インストール
Windows
公式サイトからインストーラをダウンロードして実行。
注意事項
RubyGemsはIronRubyをインストールしたディレクトリの中の「\Lib\ruby\gems\」ディレクトリ以下に配置されるため、IronRubyをデフォルトのままProgram Filesディレクトリにインストールすると、Windows Vita以降のセキュリティ制限により動かないので注意すること。
また、RubyGemsの中にはnmakeを用いる物も多々ある。nmakeは単品配布[1]、もしくはVisual Studio同梱の物を使うと良い。なお、nmakeへのパスが通っていないと次々とエラーがでることになる。Visual Studio同梱版の場合はcmd.exe起動時に一式のパスを通してくれる「Visual Studio コマンドプロンプト」というスタートメニューの中にあるショートカットから起動するという手もある。
Mono
以下は2012年3月14日時点でのインストール方法です。 URLなど、IronRubyのバージョンはIronRuby 1.1.3(Ruby 1.9.2互換)を対象としています。
基本的にはzipファイルをダウンロードしてきて展開するだけです。
# ダウンロード
$ wget --content-disposition "http://download.codeplex.com/Download?ProjectName=ironruby&DownloadId=217153&FileTime=129445296766130000&Build=18559"
# 展開
$ unzip IronRuby.zip -d /opt/ironruby
# ショートカット用のシェルスクリプトを用意しておく
$ echo '#!/bin/sh'$'\nexec mono $MONO_OPTIONS "/opt/ironruby/bin/ir.exe" "$@"' > /opt/ironruby/bin/ir
$ chmod 755 /opt/ironruby/bin/ir
gemが動かない。
Mono(ソースコードから)
以下は2012年03月09日時点でのインストール方法であり、今後変更になる可能性がある。
1. GitHubからソースコードをダウンロードする。
GitHubのサイト上からブラウザでダウンロードして展開する。
$ wget "https://github.com/IronLanguages/main/zipball/v1.1.3"
$ unzip v1.1.3
$ cd IronLanguages-main-93ce72d/
2. ファイル名の大文字小文字を統一する。
ソリューションファイルの中で指定されている各種ファイルが、ファイルの大文字小文字を区別しないWindows向けに作られており、ファイル名の大文字小文字を区別するLinux/Unixでは「ファイルがない」などのエラーとなるので統一する。
$ find . -type f -name *.sln -exec sed -i.bak 's/SilverLight/Silverlight/g' '{}' \;
3. xbuildコマンドでビルドする。
デフォルトで警告をエラーとするTreatWarningsAsErrorsが有効になっているので無効化した状態でビルドする。
$ xbuild /p:Configuration=Release /p:TreatWarningsAsErrors=false Solutions/Ruby.sln
4. Ruby標準ライブラリのパスを書き換えておく。
※下記ではインストール先を「/opt/ironruby/」ディレクトリとしているので適宜書き換えること。
Ruby標準ライブラリのパスはApp.configに記載されているので適宜書き換える。 ここでは実行ファイルの在処の中に配置する。
$ find bin/ -name *.config -exec sed -i.bak 's/\.\.\\.\.\\Languages\\Ruby\\StdLib/StdLib/g' '{}' \;
5. 出来上がったファイルをコピーする。
※下記ではインストール先を「/opt/ironruby/」ディレクトリとしているので適宜書き換えること。
実行ファイル。
$ mkdir -p /opt/ironruby/lib
$ cd bin/Release
$ for f in *.exe *.dll *.config; do \
install $f /opt/ironruby/lib; \
done
$ cd ../../
ライブラリ。
$ cp -R Languages/Ruby/StdLib /opt/ironruby/lib/
gemなどの各種スクリプト。
$ for f in Languages/Ruby/Scripts/bin/*; do \
install $f /opt/ironruby/bin; \
done
6. ショートカット用のシェルスクリプトを作っておく。
※下記ではインストール先を「/opt/ironruby/bin」ディレクトリとしているので適宜書き換えること。
$ mkdir -p /opt/ironruby/bin
$ echo '#!/bin/sh'$'\nexec mono $MONO_OPTIONS "/opt/ironruby/lib/ir.exe" "$@"' > /opt/ironruby/bin/ir
$ chmod 755 /opt/ironruby/bin/ir
7. IronRubyを起動してみる
$ cd /opt/ironruby/bin
$ ./ir
>>> puts 'hello ironruby'
hello ironruby
=> nil
>>> (Ctrl-Dで終了)
まだgemが動かせていない。
Windowsのigem.batは動くんだがねぇ。
IronRuby Tools
RubyGems
IronRubyでRubyGemsを使うには「ir -S gem」コマンドを使う。このコマンドをバッチファイルにしたigem.batという物もあるのでそちらを使っても良い。
簡単な使い方を表示する
引数を省略すると簡単なヘルプが表示される。 全コマンドが表示されるわけではないので注意すること。
igem
基本的には本家Rubyのgemコマンドとほぼ同じなので、詳細はRubyGemsの公式サイト上のドキュメントを見ておくとよい。
標準パッケージをアップデートする
igemコマンドに「--no-ri --no-rdoc」というオプションを付けることでドキュメントの生成を抑制する。 RubyGemsのインストールやアップデートのうち、大半の時間はドキュメント生成なので、このオプションを付けることで驚くほど高速化することができる。
また、「-V」オプションを付けることで途中経過を表示することができる。通常は正常終了するか異常終了するまで何も画面にでないので本当に動いているか不安になるので、極力付けた方がよい。
igem update --system --no-ri --no-rdoc -V
インストールされているパッケージの一覧を表示する
igem list --local
RubyGemsで配布されているパッケージの一覧を表示する
なお、RubyGemsで配布されているパッケージは膨大な数にのぼるので、とてつもなく時間がかかる。
igem list --remote
パッケージをインストールする
たとえばrakeをインストールする場合は以下のようにする。
igem install rake -V --no-ri --no-rdoc
関連項目
外部リンク
- http://ironruby.net/ - 公式サイト
- https://github.com/IronLanguages/ - 公式リポジトリ
- https://github.com/IronLanguages/main/tree/master/Languages/Ruby - 公式リポジトリ内のIronRuby本体のソースコード