1

我在ubuntu 12上安装了以下

  • 红宝石 1.9.2p320
  • 导轨 3.2.6

现在我有一个开发成 Rails 2 和 Ruby 1.8.7 的旧项目

问题:

当我在旧项目根目录下运行以下命令时

ruby ./script/plugin install git://github.com/rails/rails_upgrade.git

出现以下错误

Invalid gemspec in [/usr/local/rvm/gems/ruby-1.9.2-p320/specifications/ZenTest-4.9.1.gemspec]: Illformed requirement ["< 2.1, >= 1.8"]
/usr/local/rvm/rubies/ruby-1.9.2-p320/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require': no such file to load -- initializer (LoadError)
        from /usr/local/rvm/rubies/ruby-1.9.2-p320/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require'
        from /var/www/project/client/softwallet/config/boot.rb:54:in `load_initializer'
        from /var/www/project/client/softwallet/config/boot.rb:38:in `run'
        from /var/www/project/client/softwallet/config/boot.rb:11:in `boot!'
        from /var/www/project/client/softwallet/config/boot.rb:109:in `<top (required)>'
        from <internal:lib/rubygems/custom_require>:29:in `require'
        from <internal:lib/rubygems/custom_require>:29:in `require'
        from ./script/plugin:2:in `<main>'
4

3 回答 3

3

将旧 Rails 项目升级到新项目并invalid gemspec解决问题。

然后,您必须执行以下操作:

运行gem update --system后跟bundle install

更新:

您正在使用config/boot.rb旧版本的 rails 应用程序中的旧版本。

请执行下列操作:

1)创建一个新的项目目录。

2)生成一个新的rails应用程序(你最新的rails版本)

3)boot.rb由它创建的使用。

于 2013-04-26T09:00:38.363 回答
0

当您的环境中已经安装了相同 gem 的不兼容版本时,就会发生这种情况。要纠正,您可以卸载并重新安装 gem 或安装特定版本的 gem。

确保在执行此操作之前执行 gem 清理操作。

于 2013-04-26T08:36:37.997 回答
0

我的问题就是这样解决的。我使用的是 RVM,如果您编辑了这些 .bashrc 文件,那么每次登录到 shell 时,执行/bin/bash --login。它的作用是,它使命令行记下您设置的 rvm 路径并首先安装它们。

我在 Ubuntu 12 上做了这个,它确实解决了我的问题,我不认为做 gem update --system 是一个好主意,因为它真的会弄乱环境,迫使一个人做一个 rvm 内爆并重新安装它.

于 2013-08-13T05:16:50.753 回答