SyntaxHighlighter

2012年11月4日日曜日

ocraruby - Ruby を一つの EXE にまとめて、簡単に持ち運べるようにしておく

ocraruby - Ruby を一つの EXE にまとめて、簡単に持ち運べるようにしておく

体調を崩していることもあり、なかなか仕事以外で Ruby に触れる機会がないですが、これも業務で使うために家で作ったので公開しておきます。

単一のバイナリのみで、任意の Ruby スクリプトを実行したい

いろいろな Windows PC 上で作業する必要があったり、ちょっと Windows サーバーのメンテナンスをする必要がある場合などにあると便利なので、 ocra を使って単一のバイナリのみで任意の Ruby スクリプトを実行できるようにしたものを作っておきました。
任意とは言っても、gem などの外部ライブラリを必要とするものは動作しません。
あくまで、 Ruby の標準添付ライブラリのみを使用しているスクリプトが動作するということです。

とりあえず Windows で Ruby を触ってみたいというような、 Windows で Ruby を初めて使う方にもよいかもしれません。
サポートはできないですが。

ダウンロード

バイナリのダウンロードは GitHub のダウンロードページからお願いします。
この記事を書いている時点では、Ruby 1.9.3p286 を元にしたものがダウンロードできます。

ocraruby.exe
私が独断で選んだよく使う標準添付ライブラリが入っています。ネットワーク関係が入っていないのは、これらを入れるとサイズが大きくなるからです。
ocrarubyfull.exe
すべての標準添付ライブラリが入っています。
ocrarubylite.exe
標準添付ライブラリなし

仕組み

特に何のひねりがあるわけでもなく、引数で渡されたファイルを load するようなスクリプトを ocra で EXE 化しているだけです。

一応、 ARGV$0 の設定はしてあるので、下記のようなスクリプトも期待通りに動作します。

注意

注意点としては、 ocra を使っているので、 Ruby 本体を Temp ディレクトリに展開する分だけ時間がかかってしまうということです。

ocrarubyfull.exe などでは、5秒以上かかるかもしれません。
これは展開に時間がかかっているのであり、 Ruby は遅いんだな、と勘違いしないでください

来月になればきっと体調も戻り、時間もできると思うので、また色々やりたいことをやろうと思います。

oruby は既にそういう名前のものがあったので ocraruby にしておきました。

0 件のコメント:

コメントを投稿