Ruby on rails Mac上的Ruby 1.9-Rails仍在加载1.8库?

Ruby on rails Mac上的Ruby 1.9-Rails仍在加载1.8库?,ruby-on-rails,ruby,Ruby On Rails,Ruby,因此,我将Ruby 1.9安装到/usr/local/bin中,并将Ruby 1.8.7保留在/usr/bin中。将我的所有1.8 ruby、rails、rdoc等可执行文件重命名为ruby18、rails18等 因此,在命令行中使用ruby--version,可以得到: ruby 1.9.1p129 (2009-05-12 revision 23412) [i386-darwin9.7.0] 如果我启动一个irb会话并查看$:变量,该变量显示搜索任何require或load调用的所有位置,该

因此,我将Ruby 1.9安装到/usr/local/bin中,并将Ruby 1.8.7保留在/usr/bin中。将我的所有1.8 ruby、rails、rdoc等可执行文件重命名为ruby18、rails18等

因此,在命令行中使用ruby--version,可以得到:

ruby 1.9.1p129 (2009-05-12 revision 23412) [i386-darwin9.7.0]
如果我启动一个
irb
会话并查看
$:
变量,该变量显示搜索任何
require
load
调用的所有位置,该列表就是作为OEM Ruby安装一部分的Ruby 1.8位置

test
/Library/Ruby/Site/1.8
/Library/Ruby/Site/1.8/powerpc-darwin9.0
/Library/Ruby/Site/1.8/universal-darwin9.0
/Library/Ruby/Site
/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-darwin9.0
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0
.
我想可能是
irb
可执行文件仍然指向1.8,所以我确定shebang是正确的,它是:

#!/usr/local/bin/ruby
我想在这些位置搜索include本身并没有什么问题,但看起来只有这些位置——它永远不会在lib/ruby19目录中搜索标准库。有什么好处

更新 如果我有Ruby,直接给我
$:
的内容,然后跳过
irb
,看起来列表是正确的:

ruby -e 'puts $:'

/usr/local/lib/ruby19/1.9.1/test
/usr/local/lib/ruby19/gems/1.9.1/gems/actionmailer-2.3.2/lib
/usr/local/lib/ruby19/gems/1.9.1/gems/actionpack-2.3.2/lib
/usr/local/lib/ruby19/gems/1.9.1/gems/activerecord-2.3.2/lib
/usr/local/lib/ruby19/gems/1.9.1/gems/activeresource-2.3.2/lib
/usr/local/lib/ruby19/gems/1.9.1/gems/activesupport-2.3.2/lib
/usr/local/lib/ruby19/gems/1.9.1/gems/daemons-1.0.10/lib
/usr/local/lib/ruby19/gems/1.9.1/gems/eventmachine-0.12.8/lib
/usr/local/lib/ruby19/gems/1.9.1/gems/rack-1.0.0/bin
/usr/local/lib/ruby19/gems/1.9.1/gems/rack-1.0.0/lib
/usr/local/lib/ruby19/gems/1.9.1/gems/rails-2.3.2/bin
/usr/local/lib/ruby19/gems/1.9.1/gems/rails-2.3.2/lib
/usr/local/lib/ruby19/gems/1.9.1/gems/thin-1.2.2/bin
/usr/local/lib/ruby19/gems/1.9.1/gems/thin-1.2.2/lib
/usr/local/lib/ruby19/site_ruby/1.9.1
/usr/local/lib/ruby19/site_ruby/1.9.1/i386-darwin9.7.0
/usr/local/lib/ruby19/site_ruby
/usr/local/lib/ruby19/vendor_ruby/1.9.1
/usr/local/lib/ruby19/vendor_ruby/1.9.1/i386-darwin9.7.0
/usr/local/lib/ruby19/vendor_ruby
/usr/local/lib/ruby19/1.9.1
/usr/local/lib/ruby19/1.9.1/i386-darwin9.7.0
.
因此,听起来好像调用了错误版本的
irb
。但正如我所说,shebang行似乎在与正确的Ruby可执行文件进行对话

如果我用
ruby
直接调用
irb
,那么我会得到正确的1.9列表,包括:

ruby /usr/local/bin/irb

这真的很奇怪…

嗯,我最后做的只是注销终端会话并启动一个新会话。现在,当我运行
irb
时,我得到了1.9个位置的正确列表

终端之前肯定认为它运行的是正确的,不过:

which irb
/usr/local/bin/irb

耸耸肩

听起来可能是Bash路径缓存的一种情况。将来,您可以使用
hash-r
进行清除。

键入
gem env
时会得到什么?(假设您已针对1.9安装安装rubygems)rubygems环境:-rubygems版本:1.3.1-RUBY版本:1.9.1(2009-05-12 patchlevel 129)[i386-darwin9.7.0]-安装目录:/usr/local/lib/ruby19/gems/1.9.1-RUBY可执行文件:/usr/local/bin/ruby19-可执行文件目录:/usr/local/bin-RUBYGEMS平台:-RUBY-x86-darwin-9-GEM路径:-/usr/local/lib/ruby19/gems/1.9.1-/Users/rob/.GEM/RUBY/1.9.1-GEM配置:-:更新\源=>真-:verbose=>true-:benchmark=>false-:backtrace=>false(还有一个源代码列表,但我没有空间粘贴!)Ruby可执行文件不正确——它以前是ruby19,但我将其重命名为纯Ruby…嗯…刚刚更新到gem版本1.3.4,它将其shebang行设置回/usr/local/bin/ruby19(这就是我第一次安装时的情况).什么配置告诉gem这样做?也许irb也发生了类似的事情?根据你的更新-你确定你看到的是正确的“irb”吗?如果你做一个
哪个irb
,它是在/usr/bin/irb还是/usr/local/bin/irb?如果ruby 1.9和ruby 1.8,irb是相同的…也许shebang是不同的?