【问题标题】:How can I get bundler to use the Ruby version set by chruby and .ruby-version?如何让 bundler 使用 chruby 和 .ruby-version 设置的 Ruby 版本?
【发布时间】:2018-01-25 03:50:13
【问题描述】:

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

另外,ruby "1.8.7" 包含在 Gemfile

而本地版本是ruby-1.8.7-p374bundler 环境使用的是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

This issue 包含一些有用的 cmets,但到目前为止我还没有解决这个问题。由于通过brew install vim 安装vim,我确实在/usr/local/opt 中安装了Ruby 2.5.0。这似乎是 Ruby 1.8.7 捆绑脚本正在使用的版本,如下所示:

$ which bundle
/Users/keithpitty/.gem/ruby/1.8.7/bin/bundle

$ head -n1 $(which bundle)
#!/usr/local/opt/ruby/bin/ruby

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

【问题讨论】:

  • 您还有这个问题吗?如果是,您是否尝试过重新安装 Bundler?
  • 感谢您的评论。我现在意识到我忘了在这里提供解决方案。我现在添加它。

标签: ruby bundler chruby


【解决方案1】:

你有没有提到你计划使用的 Gemfile 中的 ruby​​ 版本,如果不尝试在你的 Gemfile 中添加 ruby​​ 版本,更多信息here

ruby '~> 2.3.0'

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

【讨论】:

  • 是的,如前所述,我在 Gemfile 中指定了ruby "1.8.7",我使用chruby 而不是rvmrbenv 来管理多个Ruby 版本。
【解决方案2】:

我通过安装 RubyGems 1.6.2 解决了这个问题。请参阅How to set correct Ruby version in gem environment 了解更多信息。

【讨论】:

    【解决方案3】:

    我遵循了这些说明 https://gist.github.com/andrewroycarter/6815905

    简而言之,我有一个项目使用 2.5.8,而我的本地版本是 2.7.2,所以 bundle install 说

    您的 Ruby 版本是 2.7.2,但您的 Gemfile 指定的是 2.5.8

    我所做的是转到我的主目录(或至少离开项目目录),激活 chruby 2.5.8 并安装 bundle gem

    cd
    chruby 2.5.8
    gem install bundler
    

    现在,当我回到项目目录时,我可以进行捆绑安装。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多