Bundler是一个管理Ruby依赖关系的工具,它有时会选择安装gem而不使用系统中已安装的gem。这是因为Bundler的作用是确保应用程序的所有依赖关系都被明确地管理,从而避免与系统的gem发生冲突或版本控制错误。
以下是一个使用Bundler的示例:
source 'https://rubygems.org'
gem 'rails', '5.2.1'
gem 'bcrypt', '~> 3.1.7'
gem 'pg', '0.18.4'
$ bundle install
这将安装您的应用程序所需的所有gem,而不是使用系统中已安装的gem。
$ bundle exec rails server
这将运行Rails应用程序,并使用Bundler所安装的所有gem。
总之,Bundler的使用确保了应用程序的依赖关系与系统的gem分开管理,从而避免了潜在的版本控制错误和冲突。