kumaryu日記
2010-03-16
_ [Ruby] Rubyアプリケーションの配布
SilverlightとIronRubyでアプリ作るとChironですぐパッケージ化できるし、上げればすぐ実行できるしいいなーと思ったんですよ。 配信で作ってたものを終わり際に今日つくった分はこれ、って上げるのは楽しい。
かといってSilverlightはそれ自体がしんどいので、やっぱりexeを作ってすぐにアップできる環境を作るべき。
一体どういう環境を作ればいいのかなぁ。
必要なのは
- Windowsで動く
- 別途Rubyのインスコはいらない
- 気軽に起動できる
- 作り途中のを気軽にうpできる
- Rubyは当然1.9
こんなかんじ。
無くてもまあいいけどあると嬉しいのは
- Macでも動く
- 自動アップデート
- MacからWindowsバイナリまで作れる
こんなんか。
RubyStationはRubyを入れてないといけないし、RubyStationを入れてないといけないし、gemでアプリを入れないといけない。あと作り途中の物を適当な場所に上げるならgemのsourceも設定しないといけない。
普段Ruby使いな人ならいいけどそんな人ばっかりが対象じゃないのでgemは無理ね。あと1.9強制できんし。
Exerbで固めるのを考えてたんだけど1.9だとExerbも消えるんだった。こまった。
ruby一式を固めてzipでくれってのがいいんだが、これはアイコンとか設定できない。exeじゃなくて.bat起動とかになる。まあダメって程ではないが…。
ただ起動だけやってくれる.batかわりのexeを作ればいいんだけどね。そんなにめんどくはない。
自動アップデートと気軽に起動を満たそうとするとWindowsではClickOnceが素敵。これは.NETアプリしか起動できないようだが、起動さえしてしまえば*1やりたい放題なので、rubyを起動するだけのアプリをC#ででも書けばよろしかろう。ただしMacから作ろうとするとめんどそうなのがネック。
Macで動かすのはそんなにめんどくなくて、appパッケージにrubyごと全部つっこんでなんとか起動するようにInfo.plistを作ってやればいいだけだ。あとはdmgにでもつっこんであげればおけ。
じゃああとはこれを自動化できるようなプログラムを作ってやればかつる!とか思ったんだけど考えるのは簡単でも作るのはめんどいなぁ。
特にMacからWindowsのバイナリ作るってのが。rake-compilerでなんとかかんとかWindowsの拡張ライブラリは作れたんだけど、gemとかインスコできないし、実行もできないから必要なライブラリ一式集めてくるのが大変だね…。さすがにruby一式とか入れると素敵にでかいしなぁ。アップロードがめんどい。
Wineとか入れてみるといいのかもしんないね。
*1 完全信頼なら