Ruby on rails 升级Rails时出现问题

Ruby on rails 升级Rails时出现问题,ruby-on-rails,Ruby On Rails,我正在运行Tiger,并且(愚蠢地)决定将Rails从1.1.6升级到1.2.6。我运行了命令“sudogeminstallrails——包括依赖项”,一切似乎都正常。然而,在安装之后,当我运行命令“rails-v”时,我得到了如下所示的错误。是否1.2.6与Tiger不兼容?我一直在互联网上搜索兼容性信息,但没有找到任何东西。顺便说一句,在绝望中,我试图回到1.1.6,但我仍然得到同样的错误,所以现在我被套住了。有人能帮忙吗?谢谢 /usr/local/lib/ruby/gems/1.8/ge

我正在运行Tiger,并且(愚蠢地)决定将Rails从1.1.6升级到1.2.6。我运行了命令“sudogeminstallrails——包括依赖项”,一切似乎都正常。然而,在安装之后,当我运行命令“rails-v”时,我得到了如下所示的错误。是否1.2.6与Tiger不兼容?我一直在互联网上搜索兼容性信息,但没有找到任何东西。顺便说一句,在绝望中,我试图回到1.1.6,但我仍然得到同样的错误,所以现在我被套住了。有人能帮忙吗?谢谢

/usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:55: uninitialized constant ActiveSupport::Dependencies::Mutex (NameError)
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require'
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'
    from /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support.rb:56
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require'
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'
    from /usr/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record.rb:25
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require'
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require'
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:229:in `activate'
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:228:in `each'
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:228:in `activate'
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:214:in `activate'
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:213:in `each'
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:213:in `activate'
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:66:in `active_gem_with_options'
    from /usr/local/lib/ruby/site

通过您所做的,看起来您直接跳到了rails 2.3.2

我建议您现在首先升级所有内容:

sudo gem update --system
sudo gem update
然后再安装1.2.6版本。现在您将获得1.1.6、1.2.6和2.3.2

sudo gem install rails -v1.2.6
顺便问一下,你的ruby版本是什么,你用的是苹果公司提供的吗?特别是,如果您运行以下两个命令,您将获得所需的信息。(这肯定与我的不同)


不,与Tiger没有不兼容。

我(盲目地)遵循来自的OS X RoR安装说明时出现了这个错误。你会认为它们不会有问题,因为苹果链接到它们但是,本文档中包含的二进制路径已过期

特别是RubyGems为0.9,而不是1.3。列表中的其他二进制文件已过时,带有死链接

要解决此问题,请按照中的当前说明进行操作。您将下载并安装正确版本的RubyGems,一切顺利


如果您遵循HiveLogic说明,则可能需要检查所有版本。

您可以通过在config/environment.rb顶部设置RAILS\u Gem\u version常量来指定所需的Gem版本,例如

RAILS_GEM_VERSION = '2.3.2'

也可以在供应商/Rails中冻结Rails。当Rails从您的应用程序中自动引导时,它将首先查看供应商/Rails,以便您可以在其中冻结所需的版本。但我自己更喜欢RAILS\u GEM\u版本。

谢谢kch,我似乎又回到了工作岗位,现在运行的是RAILS 2.3.2(和Ruby 1.8.5)。如果你不介意的话,还有两个问题。第一,这三个不同版本的Rails存储在哪里?/usr/local/bin中的rails文件只是一个脚本文件。第二,在创建应用程序时,如何指定要运行的Rails版本?再次感谢。我真的很感谢你的帮助。希望有一天我能有足够的经验来回报其他“新手”。我的是/opt/local/lib/ruby/gems/1.8/gems,但这取决于你的ruby在哪里。对于标准OSX版本,它们位于/usr/lib/ruby/gems/1.8/gems。至于在运行rails命令时如何选择要使用的rails版本,我不知道。然而,一旦你有了应用程序,你可以在environment.rb中设置所需的gem版本,或者在vendor中设置所需的rails版本。对于这个问题,一个全新的SO问题会更好。我刚刚读到,当你创建项目时,你可以通过在版本号周围加下划线来指定你想要的版本:rails 1.2.6 myproject我还没有机会尝试,但这就是我读到的。再次感谢!
RAILS_GEM_VERSION = '2.3.2'