3

OS X にスタンドアロンの Ruby-Tk デスクトップ アプリを展開する簡単な方法を探しています。デスクトップ Ruby GUI アプリを Mac に展開するための既存のオプション (standaloneify.rb など) はすべて、RubyCocoa または MacRuby を使用していることを前提としています。 Xcode/Interface Builder プロジェクト構造に密接に結び付けられています。あるいは、Ruby ランタイム全体をデプロイする必要のない、Platypus を介して単純なスクリプトをラップしていること。私が見つけた他の既存のオプション (rubyscript2exe、ocra、crate) はいずれも、Mac をサポートしておらず、Ruby 1.9 をサポートしていません。

誰かが次のことを行うシェルスクリプトまたはRubyスクリプトを教えてくれることを願っています:

  1. アプリ内のすべての依存関係/gem を追跡します。
  2. Ruby インタープリターと依存関係をアプリケーション バンドルにコピーします。
  3. 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 よりもはるかに豊富な展開ツールの伝統がありますが、これは私にはまったく理解できませんでした。)

4

1 に答える 1

0

これは事実から少し遅れていますが、Mac 上の Ruby-Tk 用のデスクトップ アプリ展開ツールが見つからなかったので、昔ながらのやり方で、私は自分で書きました:

ruby2app

ruby2app はシンプルなコマンドライン ツールで、Python 用の py2app などの同様の Mac ツールに着想を得ており、Ruby スクリプトと Ruby ランタイムをスタンドアロンの Mac アプリケーションにバンドルします。基本構成ファイルを読み取って適切な Ruby インストールを見つけ、Ruby インタープリターを埋め込む小さな C プログラムをコンパイルし、Ruby インストール全体をアプリケーション バンドルにコピーし、関連するライブラリをメインの実行可能ファイルに再リンクします。

これは、ocra と exerb が Windows に提供するものを Mac に提供しようとします。うまくいけば、これは他の人にも役立つでしょう。

于 2014-12-06T05:56:41.810 に答える