OS X にスタンドアロンの Ruby-Tk デスクトップ アプリを展開する簡単な方法を探しています。デスクトップ Ruby GUI アプリを Mac に展開するための既存のオプション (standaloneify.rb など) はすべて、RubyCocoa または MacRuby を使用していることを前提としています。 Xcode/Interface Builder プロジェクト構造に密接に結び付けられています。あるいは、Ruby ランタイム全体をデプロイする必要のない、Platypus を介して単純なスクリプトをラップしていること。私が見つけた他の既存のオプション (rubyscript2exe、ocra、crate) はいずれも、Mac をサポートしておらず、Ruby 1.9 をサポートしていません。
誰かが次のことを行うシェルスクリプトまたはRubyスクリプトを教えてくれることを願っています:
- アプリ内のすべての依存関係/gem を追跡します。
- Ruby インタープリターと依存関係をアプリケーション バンドルにコピーします。
- Ruby インタープリターとすべての dylib で install_name_tool を実行して、それらを移植可能にします。
アプリケーション バンドルは、Platypus によって作成されたもの、Cocoa スタブ ランチャーを使用するもの、またはシェル スクリプトを使用することもできます。私はそれらの処理方法を知っています。私が抱えている問題は、Ruby ランタイムを移植可能な方法でラップすることです。
http://weft-qda.rubyforge.org/svn/trunk/weft-qda/rake/rake_osx.rbに、私が達成しようとしているタスクを含むrakefile がありますが、この rakefile はより大きなビルドの一部です。 Mac で実行できない構造。「ruby rake_osx.rb」または「rake」を介して実行できる単純なスクリプトにこれをリファクタリングするほど、rakefile 構造に精通していません。
誰かがこの rakefile を独立して実行するように変更する方法を提案してくれたり、別のサンプル プロジェクトを教えてくれたり、コードを共有してくれたりしたら、感謝します。私が取り組んでいるプロジェクトは、Python よりも Ruby に適しています (Ruby のライブラリ サポートの方が優れています) が、展開がうまくいかない場合は、時間を投資するつもりはありません。(Python には、Ruby よりもはるかに豊富な展開ツールの伝統がありますが、これは私にはまったく理解できませんでした。)