gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 16:40:05 24 4
gpt4 key购买 nike

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

因此,在命令行中执行 ruby --version 会得到:

ruby 1.9.1p129 (2009-05-12 revision 23412) [i386-darwin9.7.0]

如果我启动一个 irb session 并查看 $: 变量,它显示搜索任何 requireload 调用,列表是作为 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

我想 also 在这些位置搜索包含本身并没有什么问题,但看起来这些是唯一的位置 - 它永远不会在 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

真的很奇怪...

最佳答案

好吧,我最后做的只是注销终端 session 并开始一个新 session 。现在,当我运行 irb 时,我得到了 1.9 个位置的正确列表。

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

which irb
/usr/local/bin/irb

耸肩

关于ruby-on-rails - Mac 上的 Ruby 1.9 - Rails 仍在加载 1.8 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/972913/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com