2

gemの実行可能ファイルは通常、/binフォルダーに保存され、すべてのコードはフォルダーに保存されているよう/libです。gemに含める必要のあるサードパーティのバイナリ実行可能ファイルがいくつかあります。/binまたは/libフォルダに入れる必要がありますか?

私が見たところ、/binフォルダはシステム実行可能ファイル、またはシステムがコマンドラインから呼び出せるようにしたいスクリプト用です。/binそのため、サードパーティのバイナリをフォルダに含める必要があるかどうかはわかりません。/libこれらは、コマンドラインからではなく、コードから必要に応じて呼び出す必要があります。

私はそれらを/lib/binariesフォルダに入れることができると思います。その後、コード内からこれらの実行可能ファイルを呼び出すためのベストプラクティスはありますか?

4

1 に答える 1

2

一般的に、アプリに「サードパーティの実行可能ファイル」を含めたくありません。理想的には、それらがRubyGemsである場合、gemspecでそれらに依存することができます。

そうは言っても、そうする正当な理由があると仮定すると、RubyGemでそれらが確実に配布されるようにすることができます。

  • それらを配置するbin
  • filesそれらがgemspecの属性に含まれていることを確認します
  • executablesそれらがgemspecの属性に含まれていることを確認します
  • それbindirが設定されていることを確認します。

したがって、/ / bin / bin / your_app / bin / other_app / bin / other_app2/lib/your_app.rbがある場合

gemspecは次のようになります。

spec = Gem::Specification.new do |s| 
  s.name = 'your_app'
  s.version = '1.2.3'
  s.author = 'Your'
  s.email = 'your@email.com'
  s.platform = Gem::Platform::RUBY
  s.summary = 'Your app summary'
  s.description = 'Your app description`
  s.files         = [
    'bin/your_app',
    'bin/other_app',
    'bin/other_app2',
    'lib/your_app.rb',
  ]
  s.executables   = ["your_app","other_app","other_app2"]
  s.require_paths = ["lib"]
  s.bindir = 'bin'
end

ユーザーがRubyGemsを介してアプリをインストールすると、3つの実行可能ファイルがパスに含まれます。

于 2012-05-19T17:59:23.453 に答える