如何让bundler使用chruby和.ruby-version设置的Ruby版本?

我很高兴为运行Ruby 1.8.7的应用程序设置开发环境。 不幸的是, bundler没有使用.ruby-version.ruby-version设置的Ruby .ruby-version

另外,我在Gemfile包含了ruby "1.8.7"

本地版本是ruby-1.8.7-p374 ,而bundler环境使用的是ruby-2.5.0p0

 $ ruby -v ruby 1.8.7 (2013-06-27 patchlevel 374) [i686-darwin17.3.0] $ bundle env | grep Ruby Ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-darwin17] 

这导致以下消息:

 $ bundler Your Ruby version is 2.5.0, but your Gemfile specified 1.8.7 

此问题包含一些有用的注释,但到目前为止,我还无法解决此问题。 由于通过brew install vim安装vim ,我在/usr/local/opt安装了Ruby 2.5.0。 这似乎是Ruby 1.8.7 bundle脚本使用的版本,如下所示:

 $ which bundle /Users/keithpitty/.gem/ruby/1.8.7/bin/bundle $ head -n1 $(which bundle) #!/usr/local/opt/ruby/bin/ruby 

事实certificate这个问题非常令人沮丧。 我非常感谢任何建议。

你有没有提到你计划使用的Gemfile中的ruby版本,如果没有尝试在你的Gemfile中添加ruby版本,请在此处获取更多信息。

 ruby '~> 2.3.0' 

另外,如果你的机器中有多个ruby版本,理想情况下你可以使用RVM或rbenv来管理多个Ruby版本。 (让你的生活变得轻松:))

我通过安装RubyGems 1.6.2修复了这个问题。 有关更多信息,请参阅如何在gem环境中设置正确的Ruby版本 。