我开始使用rbenv进行Ruby版本管理,发现irb没有加载正确的Ruby版本和Gem版本。以下是详细信息。
irb Gem.path显示:
`>> Gem.path
=> ["/Users/Air/.gem/ruby/1.8", "/Library/Ruby/Gems/1.8", "/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8"]`
现在在irb中,如果我输入:puts $:
`>> puts $:
/Library/Ruby/Site/1.8
/Library/Ruby/Site/1.8/powerpc-darwin11.0
/Library/Ruby/Site/1.8/universal-darwin11.0
/Library/Ruby/Site
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby/1.8 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby/1.8/universal-darwin11.0
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/powerpc-darwin11.0
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin11.0`
在命令行中输入: gem env
`RubyGems Environment:
- RUBYGEMS VERSION: 1.8.10
- RUBY VERSION: 1.9.2 (2011-07-09 patchlevel 290) [x86_64-darwin11.0.1]
- INSTALLATION DIRECTORY: /Users/Air/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1
- RUBY EXECUTABLE: /Users/Air/.rbenv/versions/1.9.2-p290/bin/ruby
- EXECUTABLE DIRECTORY: /Users/Air/.rbenv/versions/1.9.2-p290/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-darwin-11
- GEM PATHS:
- /Users/Air/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1
- /Users/Air/.gem/ruby/1.9.1
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://rubygems.org/`
我看到 irb 加载了错误的 Ruby 版本和错误的 Gem 路径。有人能帮忙理解如何解决吗?我正在使用 rbenv 进行 Ruby 版本管理,不确定它如何影响这些问题。有建议吗?
which irb
来确认)。这个irb会加载类似于/usr/bin/ruby
的东西,这将绕过rbenv。我不熟悉rbenv,但我经常在SO上看到同样类型的问题。将系统范围内的irb重命名为irb_old
,并确保你的rbenv目录在你的路径中echo $PATH
,然后你应该可以让它工作。 - Casperirb1.9.1
。当已经安装了 Ruby 1.8 时,1.9 不会覆盖符号链接irb
、gem
、ruby
等。 - Linuxioswhich ruby
会输出什么?如果它加载了你的rbenv目录中的ruby,那么请编辑你的irb_old
的第一行为#!/usr/bin/env ruby
,然后将其重命名为irb
。现在再试一次。我不知道为什么irb没有被正确安装,但上述解决方法应该可以解决问题。 - Casper