【问题标题】:OSX Your Ruby version is 2.0.0, but your Gemfile specified 2.2.3OSX 您的 Ruby 版本是 2.0.0,但您的 Gemfile 指定的是 2.2.3
【发布时间】:2016-08-17 11:59:43
【问题描述】:

您好,我已经在 stackexchange 和 google 上搜索了很长时间但没有成功,所以我想我放弃并问这个问题,因为它似乎没有被其他主题所涵盖。

当我尝试启动 Rails 服务器时出现以下消息(之前确实有效,我只是不知道我是如何破坏它的)

Your Ruby version is 2.0.0, but your Gemfile specified 2.2.3

一点上下文:我在 OSX 上,通过 homebrew 安装了 rbenv

$ rbenv versions system * 2.2.3 (set by /Users/<user>/.rbenv/version)

好的,所以rbenv 已安装并具有正确的版本。

echo $PATH /Users/<user>/.rbenv/shims:/Users/<user>/.rbenv/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin :

$PATH 在那里,我在~./bash_profile 上有以下内容 export PATH="$HOME/.rbenv/bin:$PATH" if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi

好的,那有什么问题?你问?因为我有以下回馈给我:

$ ruby -v ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15] $ which ruby /usr/bin/ruby

现在,这最后一点让我希望,似乎我使用的是 OSX 内置的 ruby​​,而不是来自 rbenv的那个,所以我做了一个 gem env

RubyGems Environment: - RUBYGEMS VERSION: 2.6.3 - RUBY VERSION: 2.0.0 (2015-12-16 patchlevel 648) [universal.x86_64-darwin15] - INSTALLATION DIRECTORY: /Library/Ruby/Gems/2.0.0 - USER INSTALLATION DIRECTORY: /Users/<user>/.gem/ruby/2.0.0 - RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby - EXECUTABLE DIRECTORY: /usr/bin - SPEC CACHE DIRECTORY: /Users/<user>/.gem/specs - SYSTEM CONFIGURATION DIRECTORY: /Library/Ruby/Site - GEM PATHS: - /Library/Ruby/Gems/2.0.0 - /Users/bronze/.gem/ruby/2.0.0 - /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/gems/2.0.0 - SHELL PATH: - /Users/<user>/.rbenv/bin - /Users/<user>/.rbenv/shims - /Users/<user>/.rbenv/bin - /usr/local/sbin - /usr/local/bin - /usr/bin - /bin - /usr/sbin - /sbin

我目前没有找到可以采取的路径。对我来说,似乎一切都已安装,但 OSX 没有看到 shims 或来自 rbenv 的任何内容

$ which -a ruby /usr/bin/ruby

这应该显示了rbenv 的安装,对吧?

目前非常感谢任何和所有帮助。

-干杯

【问题讨论】:

    标签: ruby macos terminal homebrew rbenv


    【解决方案1】:

    请按照instructions 运行rbenv init

    【讨论】:

    • 我做到了。 rbenv initrbenv rehash,init 给了我rbenv init # Load rbenv automatically by appending # the following to ~/.bash_profile: eval "$(rbenv init -)"
    • 是的,我见过几种添加方法,但这就是我得到的### There from beginning export PATH="/usr/local/bin:$PATH" ### Added by Homebrew export PATH="/usr/local/sbin:$PATH" #Rbenv adding export PATH="$HOME/.rbenv/bin:$PATH" if which rbenv &gt; /dev/null; then eval "$(rbenv init -)"; fi eval "$(rbenv init -)"
    • 链接到格式更好的要点 .bash_profile gist.github.com/bronze/1f5395b27bd5974a91811a2d4fea9744
    • 更新:卸载 homebrew 和 rbenv 并从头开始重新安装,现在它找到了 ruby​​ which -a ruby /Users/&lt;user&gt;/.rbenv/shims/ruby /usr/bin/rubygem env 仍然看不到 rbenv 目录
    【解决方案2】:

    好吧,这是一次疯狂的旅行,所以如果将来有人发现这个问题,这就是有效的方法:卸载所有内容

    brew uninstall rbenv brew uninstall ruby-build rm -rf `brew --prefix`/Cellar/rbenv 根据How do you uninstall rbenv on OSX?

    然后我也卸载了自制软件。有点激烈,但无论如何都没有工作......

    所以,从头开始,安装 homebrew,然后是 rbenv,然后是正确的版本,shims 路径开始出现。

    【讨论】:

      【解决方案3】:

      RVM 为您提供 gemsets,这是一种沙盒环境,可让您维护单独的 gems 集。

      $ rvm gemset use global 这应该返回:

      gemsets for ruby-2.x.x => (default) global

      $ rvm gemset use global
      $ gem list
      

      完成!

      【讨论】:

        【解决方案4】:

        您是否使用 rbenv 设置了全局或本地版本? rbenv global 2.2.3

        通过使用global,每个项目都可以使用 ruby​​ 2.2.3。
        如果你只想在当前文件夹中使用这个版本:rbenv local 2.2.3

        【讨论】:

          猜你喜欢
          • 2016-03-04
          • 2014-05-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-10-20
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多