前回の続きです。
rubyscript2exe.rbを使って、前回アーカイブしたLocalApp.rbをEXE化します。
in `replace': can't modify frozen string (TypeError) >
んー失敗みたい。前回のtar2rubyscript同様のエラーです。
該当箇所を代入式に書き換えて再度実行してみました。
エラーメッセージは出ずに終了するものの、肝心のexeファイルができてません。
ググル先生で色々調べてみましたが、どうもRubyのバージョンに依存しているようらしいです。
ruby1.8.5で成功した記事を見つけたので、試してみます。
C:\WORK>ruby rubyscript2exe.rb LocalApp.rb Tracing LocalApp ... => Booting WEBrick => Rails 2.3.2 application starting on http://0.0.0.0:3000 => Call with -d to detach => Ctrl-C to shutdown server [2009-03-29 03:15:18] INFO WEBrick 1.3.1 [2009-03-29 03:15:18] INFO ruby 1.8.5 (2007-06-07) [i386-mswin32] [2009-03-29 03:15:18] INFO WEBrick::HTTPServer#start: pid=1072 port=3000 [2009-03-29 03:15:28] INFO going to shutdown ... [2009-03-29 03:15:28] INFO WEBrick::HTTPServer#start done. Exiting Gathering files... Copying files... Creating LocalApp.exe ...
init.rbで記述したload "script/server"が実行されるので、webrickが起動します。これはCtr-Cで止めます。
すると、カレントディレクトリにLocalApp.exeができました!。
ちなみに、rubyのバージョンをいくつか試してみましたが
ということで、試した中ではどうやら1.8.5しか動作しないようです。ちなみに、1.8.5だとreplace絡みのエラーも出ませんでした。(rubyのバージョン変更は、公式サイトからバイナリ版のzipを展開したものをRubyのインストールディレクトリに上書きでOKです、多分)
で、じゃ実際にexeを動かしてみようと。
おお、webrick起動したーブラウザで動作確認、OKOK。
やっと、できたです。
しかし、ruby1.8.5じゃないと動かないのは鬼門ですな。。。
次回、今回までのことをまとめよう。