【问题标题】:Unable to run rake after updating rails versions更新 Rails 版本后无法运行 rake
【发布时间】:2011-06-07 04:33:25
【问题描述】:

我已升级到 rails 2.3.11 和 ruby​​ 1.9.2,因为我的一些 gem 与以前的版本不兼容。现在我无法执行 rake 命令。 rake gems:install 或 rake db:migrate 时出现以下错误。

(in C:/Ruby/New/Facebook)
rake aborted!
can't convert Symbol into Integer
C:/Ruby192/lib/ruby/gems/1.9.1/gems/rails-2.3.11/lib/rails/gem_dependency.rb:53:
in `[]'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/rails-2.3.11/lib/rails/gem_dependency.rb:53:
in `initialize'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/rails-2.3.11/lib/initializer.rb:836:in `new'

C:/Ruby192/lib/ruby/gems/1.9.1/gems/rails-2.3.11/lib/initializer.rb:836:in `gem'

C:/Ruby/New/Facebook/config/environment.rb:22:in `block in <top (required)>'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/rails-2.3.11/lib/initializer.rb:111:in `run'

C:/Ruby/New/Facebook/config/environment.rb:9:in `<top (required)>'
<internal:lib/rubygems/custom_require>:29:in `require'
<internal:lib/rubygems/custom_require>:29:in `require'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/activesupport-2.3.11/lib/active_support/depe
ndencies.rb:182:in `block in require'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/activesupport-2.3.11/lib/active_support/depe
ndencies.rb:547:in `new_constants_in'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/activesupport-2.3.11/lib/active_support/depe
ndencies.rb:182:in `require'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/rails-2.3.11/lib/tasks/misc.rake:4:in `block
 in <top (required)>'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:634:in `call'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:634:in `block in execute'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:629:in `each'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:629:in `execute'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:595:in `block in invoke_with_call_chain'
C:/Ruby192/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:588:in `invoke_with_call_chain'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:605:in `block in invoke_prerequisites'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:602:in `each'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:602:in `invoke_prerequisites'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:594:in `block in invoke_with_call_chain'
C:/Ruby192/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:588:in `invoke_with_call_chain'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:581:in `invoke'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:2041:in `invoke_task'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:2019:in `block (2 levels) in top_level'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:2019:in `each'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:2019:in `block in top_level'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:2058:in `standard_exception_handling'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:2013:in `top_level'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:1992:in `run'
C:/Ruby192/bin/rake:31:in `<main>'

请帮助我,因为我坚持了几天。

【问题讨论】:

    标签: ruby-on-rails rubygems rake gemspecs


    【解决方案1】:

    对我来说看起来像是 Rake 版本问题。试试这个...

    gem uninstall rake # select all options
    gem 'rake', '0.8.7' # Gemfile
    bundle install
    run you rake command
    

    将这行代码放在根目录下的 .rvmrc 中,以后可以跳过类似这样的小错误。

    bundle exec $SHELL
    

    一切顺利,让我们知道你的进展。

    【讨论】:

    • 感谢您的回复。我执行了以下操作: C:\Ruby\New\Facebook>gem uninstall rake 您已请求卸载 gem:rake-0.8.7 rails-2.3.11 取决于 [rake (>= 0.8.3)] rails-2.3 .8 依赖于 [rake (>= 0.8.3)] 如果删除此 gem,将无法满足一个或多个依赖项。继续卸载? [Yn] Y 成功卸载 rake-0.8.7 C:\Ruby\New\Facebook>gem 'rake', '0.8.7' ERROR: While execution gem ... (RuntimeError) Unknown command rake,
    • 那么我现在如何安装我的 rake 文件作为 gem 'rake', '0.8.7' 不起作用
    • 你需要把 gem 'rake', '0.8.7' 放到你的 Gemfile 中。如果你想通过命令行安装,你需要 gem install rake -v 0.8.7
    • 谢谢。但它仍然无法正常工作,因此欢迎提供更多想法
    • 如果您使用 Ruby 1.8.7 或 Ree,您可以运行 Rake。如果是这样,那么这是 2.3.x 过时的问题,需要修补。
    【解决方案2】:

    您可能需要升级 ruby​​gems-update。

    运行 gem -v 以查看您当前的版本号。

    运行 gem update --system 来升级 ruby​​gems。 (根据您的设置,您可能需要 sudo)

    要恢复到以前的版本,请运行 gem update --system 1.3.7(将 1.3.7 换成以前的版本号)

    【讨论】:

    • 嗯,升级后错误没有变化。能否请您提出其他建议或我应该升级到哪个版本?
    【解决方案3】:

    您应该在启动 rake 之前解决宝石的冲突。如果成功,请尝试运行服务器,这意味着您也可以运行 Rake,它与运行 Rake 之前的 Rake 版本无关,为 Rails 生成有效的 gem 列表。

    【讨论】:

    • 感谢您的回复。我当前的 gem 列表如下,但如何使其成为有效的 gem 列表 C:\Ruby\New\Facebook>gem list *** LOCAL GEMS *** actionmailer (2.3.11, 2.3.8) actionpack (2.3. 11, 2.3.8) activerecord (2.3.11, 2.3.8) activeresource (2.3.11, 2.3.8) activesupport (2.3.11, 2.3.8) minitest (1.6.0) mysql (2.8.1 x86-mingw32 ) rack (1.1.2) rails (2.3.11, 2.3.8) rake (0.8.7) rdoc (2.5.8) ruby​​gems-update (1.8.5, 1.5.2)
    • 您是否为您的项目创建了数据库?
    猜你喜欢
    • 2015-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多