【问题标题】:bundle install thinks it is using a ruby version I don't havebundle install 认为它使用的是我没有的 ruby​​ 版本
【发布时间】:2020-03-24 11:24:01
【问题描述】:

尝试进行捆绑安装,但出现以下错误:

Your Ruby version is 2.6.3, but your Gemfile specified 2.2.7

问题是我没有安装 ruby​​ 2.6.3 (OS Catalina)

使用 rvm list 我得到:

code
➜  cooper git:(id_43310_add_pr_comments_notification) ✗ rvm list
=> ruby-2.2.7 [ x86_64 ]
 * ruby-2.3.8 [ x86_64 ]
   ruby-2.6.5 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

➜  ✗ rvm uninstall 2.6.3
ruby-2.6.3 - #already gone
➜  ✗ rvm remove 2.6.3
ruby-2.6.3 - #already gone
Using /Users/noammansur/.rvm/gems/ruby-2.3.8
which ruby
/Users/noammansur/.rvm/rubies/ruby-2.2.7/bin/ruby
echo $path
/Users/noammansur/.rvm/gems/ruby-2.2.7/bin /Users/noammansur/.rvm/gems/ruby-2.2.7@global/bin /Users/noammansur/.rvm/rubies/ruby-2.2.7/bin /Users/noammansur/.rvm/bin /Users/noammansur/.nvm/versions/node/v8.11.4/bin /usr/local/bin /usr/bin /bin /usr/sbin /sbin /usr/local/opt/mysql@5.7/bin
ruby -v
ruby 2.2.7p470 (2017-03-28 revision 58194) [x86_64-darwin19]

但这无济于事。有什么建议吗?

【问题讨论】:

  • 我很确定您确实安装了 Ruby 2.6.3,因为它是 Catalina 附带的。
  • MacOS 已经预装了 ruby​​,你可以在你的bash 输入ruby -v 来检查它
  • 您是否也尝试过将该项目的本地 ruby​​ 版本更改为您想要的?
  • 显然我确实拥有它。捆绑安装失败我该怎么办?

标签: ruby-on-rails ruby bundle rvm bundler


【解决方案1】:

Ruby 2.6.3 预装在 MacOS Catalina 中,因此您的问题应该来自损坏的 rvm 安装或 PATH。从检查ruby -vwhich ruby 开始。

当 rvm 工作时,你会得到类似的东西:

$ which ruby
/Users/<username>/.rvm/rubies/ruby-2.6.1/bin/ruby

$ echo $PATH
/Users/<username>/.rvm/gems/ruby-2.6.1/bin:
/Users/<username>/.rvm/gems/ruby-2.6.1@global/bin:
/Users/<username>/.rvm/rubies/ruby-2.6.1/bin:
/Users/<username>/.rvm/bin:
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin

其他情况:

$ rvm use system
Now using system ruby.

$ which ruby
/usr/bin/ruby

$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Users/<username>/.rvm/bin

检查您(或其他人)是否修改了您的配置文件脚本(.profile、.bashrc、zshrc 等,取决于您的 shell 和设置)并覆盖了 PATH,还在那里寻找 rvm init:

export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

【讨论】:

  • @NoamMansur 另见/usr/bin/ruby -v
  • ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin19] 那么我该如何更改/使捆绑包不使用它呢?
  • @NoamMansur 这是有问题的系统 ruby​​ 2.6.3,当 rvm 1 不运行时由于某种原因运行
  • 有什么建议吗?
  • @NoamMansur 深入了解为什么 bundler 在其下运行,这可能是因为您的 rvm ruby​​ 由于某种原因缺少 bundler 并且选择了路径中的下一个,或者 bundle 命令与 /user/bin/ruby shebang 等.
猜你喜欢
  • 2018-02-18
  • 1970-01-01
  • 1970-01-01
  • 2019-11-18
  • 2014-02-04
  • 1970-01-01
  • 2014-08-07
  • 1970-01-01
相关资源
最近更新 更多