bundle Install には複数の拡張機能があることは知っていますが、正確には次のとおりです。
bundle install --binstubs
通常と比較して行う
bundle install
?
bundle Install には複数の拡張機能があることは知っていますが、正確には次のとおりです。
bundle install --binstubs
通常と比較して行う
bundle install
?
このコンテキストで拡張機能が何を意味するのかわかりませんが、違いはディレクトリを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 のドキュメントは、これを説明するのはかなりひどいものです。