无法成功升级 Ruby - Gem 仍在使用旧的 ruby​​ 版本

Posted

技术标签:

【中文标题】无法成功升级 Ruby - Gem 仍在使用旧的 ruby​​ 版本【英文标题】:Unable to upgrade Ruby successfully - Gem still using old ruby version 【发布时间】:2016-08-19 05:38:43 【问题描述】:

在我的 macbook 上将 Ruby 正确升级到 2.3.0 有点麻烦。我按照这里的说明进行操作:https://gorails.com/setup/osx/10.11-el-capitan

但是,我仍然无法安装 chef-zero(这是我必须升级的原因),而且我的 Gem“类路径”似乎仍然指向旧的 Ruby 版本:

amencke@offplantever-lm ~/d/chef-repo> rbenv local
2.3.0
amencke@offplantever-lm ~/d/chef-repo> rbenv global
2.3.0
amencke@offplantever-lm ~/d/chef-repo> ruby -v
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin14]

目前看来还可以……

amencke@offplantever-lm ~/d/chef-repo> gem environment
RubyGems Environment:
  - RUBYGEMS VERSION: 2.3.0
  - RUBY VERSION: 2.0.0 (2014-05-08 patchlevel 481) [universal.x86_64-darwin14]
  - INSTALLATION DIRECTORY: /Library/Ruby/Gems/2.0.0
  - RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby
  - EXECUTABLE DIRECTORY: /usr/bin
  - SPEC CACHE DIRECTORY: /Users/amencke/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /Library/Ruby/Site
  - RUBYGEMS PLATFORMS:
    - ruby
    - universal-darwin-14
  - GEM PATHS:
     - /Library/Ruby/Gems/2.0.0
     - /Users/amencke/.gem/ruby/2.0.0
     - /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/gems/2.0.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /usr/local/bin
     - /usr/bin
     - /bin
     - /usr/sbin
     - /sbin
amencke@offplantever-lm ~/d/chef-repo> 

如果我尝试安装 chef-zero:

amencke@offplantever-lm ~/d/chef-repo> sudo gem install chef-zero 
Password:
ERROR:  Error installing chef-zero:
    chef-zero requires Ruby version >= 2.1.0.
amencke@offplantever-lm ~/d/chef-repo> 

有什么想法吗?我对 Ruby 并没有特别的经验(或者在 OSX 上创建开发环境)——如果能指出正确的方向,将不胜感激!

【问题讨论】:

我通过此链接***.com/questions/10940736/… 找到了正确 rbenv 设置的清单github.com/rbenv/rbenv/… 并建议尝试第 2 号。好奇是不是这样。 或设置rvm 来管理软件包,因为将gem 安装到root 环境中是一种丑陋的方式。从项目文件夹发出whcih gem @trueunlessfalse - 该链接引导我找到解决方案。我将使用步骤更新问题。感谢两位的输入 - 我会考虑设置一个虚拟环境 请不要将解决方案放在问题中。 Stack Overflow 是一种问答格式,答案很重要。请从中删除“答案”并创建一个单独的答案,将信息粘贴到那里。然后,当堆栈溢出允许时,您可以选择答案作为解决方案。不这样做只会混淆系统。 【参考方案1】:

这里的答案是我用的是鱼壳。来自 linux backgroup 我一直在匆忙更新环境设置是~/.bash_profile。这些设置已在此处解释:rbenv not changing ruby version。反正我不是很喜欢鱼,所以使用chsh -s /bin/bash 简单地改回 bash 并没有问题,嘿 presto:

offplantever-lm:~ amencke$ gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 2.5.1
  - RUBY VERSION: 2.3.0 (2015-12-25 patchlevel 0) [x86_64-darwin14]
  - INSTALLATION DIRECTORY: /Users/amencke/.rvm/gems/ruby-2.3.0
  - USER INSTALLATION DIRECTORY: /Users/amencke/.gem/ruby/2.3.0
  - RUBY EXECUTABLE: /Users/amencke/.rbenv/versions/2.3.0/bin/ruby
  - EXECUTABLE DIRECTORY: /Users/amencke/.rvm/gems/ruby-2.3.0/bin
  - SPEC CACHE DIRECTORY: /Users/amencke/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /Users/amencke/.rbenv/versions/2.3.0/etc
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-darwin-14
  - GEM PATHS:
     - /Users/amencke/.rvm/gems/ruby-2.3.0
     - /Users/amencke/.rvm/gems/ruby-2.3.0@global
     - ... 

干杯,亚瑟

【讨论】:

以上是关于无法成功升级 Ruby - Gem 仍在使用旧的 ruby​​ 版本的主要内容,如果未能解决你的问题,请参考以下文章

gem install报错 ruby升级

pod 升级命令

如何升级我的本地自定义 gem“my_gem”的 ruby​​ 版本

Mac OS 下Ruby gem的一些坑

Ruby cairo gem 无法在 Mac OS X Yosemite 上安装

pod search 报错 ruby环境问题#yyds干货盘点#