0

bundle Install には複数の拡張機能があることは知っていますが、正確には次のとおりです。

 bundle install --binstubs

通常と比較して行う

 bundle install 

?

4

1 に答える 1

1

このコンテキストで拡張機能が何を意味するのかわかりませんが、違いはディレクトリをbundle install --binstubs作成し./bin、そのディレクトリにgemがインストールするバイナリへのリンクを配置することです。たとえば、rspec gem にはrspecバイナリが付属しています。コマンド ラインで RSpec を入力したときに適切なバージョンの RSpec が実行されるようにするには、プロジェクト固有のbinディレクトリをシェルの実行可能検索パスに配置します。

ここで Bundler が解決しようとしている問題は、複数のバージョンの gem (rspec など) をインストールできることであり、シェルには実行する適切なバージョンを見つける方法が必要です。解決策の 1 つは、PATH を使用--binstubsして変更し、最初にそれを含めることです (世界で最高のアイデアではない相対パスか、プロジェクトごとに構成する必要がある絶対パスのいずれか)。

代わりに、--binstubsすべての gem コマンドの前にbundle exec(などbundle exec rspec) を付けて、プロジェクトの Gemfile に基づいて適切なバージョンが実行されるようにするか、RVM と gemset を使用します。

これは少し複雑で、Bundler のドキュメントは、これを説明するのはかなりひどいものです。

于 2013-01-23T23:00:01.433 に答える