无法成功升级 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“my_gem”的 ruby 版本