2

Linux で動作する実行可能ファイルを公開する gem を作成しました。Windows では、gem がインストールされているディレクトリに移動すると、コマンド ラインから実行できますが-Ilib、呼び出すときに自分自身を指定する必要がありますruby

Ocra を使用して、実行可能ファイル + 依存関係 (gem の残りの部分) + Ruby を他のユーザー向けの exe ファイルに変換したいのですが、ドキュメントには、ロード パスを手動でいじるのは Ocra では良くないと書かれているようです。

Ruby のロード パスをいじることなく、gem の実行可能スクリプトを操作するように Ocra に指示するにはどうすればよいですか? これは、実行可能スクリプトがインストールされた gem の一部であるという事実を利用して、依存関係を把握する実行可能スクリプトを実行できる何らかの方法があるかどうかにかかっていると思います。

4

1 に答える 1

1

私の質問には、2 つの部分からなる回答が必要であることが判明しました。

  1. Rugbygems が Windows で実行可能ファイルをパッケージ化する方法に関する根本的な無知: Ruby のインストール時にパスに追加された ruby​​ インストール ディレクトリの bin/ ディレクトリにそれらを配置します。スクリプト自体は実行可能ではありませんが、Rubygems は実行可能.batファイルごとにファイル ラッパーを作成します。たとえば、コマンド プロンプトの任意の場所から実行されるmygem.rb付随ファイルなどです。mygem.rb.bat

  2. したがって、ocra スクリプトは、次を使用して実行できますocra path/to/Ruby/bin/mygem.rb

実行可能ファイルの一部としてある種のサーバーを起動すると、ocra を実行したときにそのサーバーが実行されてしまい、実行可能ファイルの作成に進まないことに注意してください。したがって、サーバーを起動する前に ocra が実行されているかどうかを確認する必要があります。


if not defined? Ocra
  #do server startup stuff here
end

if not defined?実際、他の目的で必要になる可能性のある実行可能スクリプトを台無しにしないように、コードを含む「インストーラー」スクリプトを作成することになりました。

于 2012-08-14T08:25:35.447 に答える