【问题标题】:Error when deploying: '@asset_name is not allowed as an instance variable name (NameError)'部署时出错:'@asset_name 不允许作为实例变量名 (NameError)'
【发布时间】:2013-09-20 19:26:29
【问题描述】:

我正在使用 rbenv。我最近更新了一些 gem,包括 rollbar、rubyzip、database-cleaner、capybara 和 selenium-webdriver(这导致捆绑器更新了一堆其他 gem)。现在我无法部署(使用 capistrano)。这是错误,之前的一些命令用于上下文:

  * executing "ln -s /store/mysite.com/logs/rails/staging /store/mysite.com/rails/staging/releases/20130920190506/log"
    servers: ["server.mysite.com"]
    [server.mysite.com] executing command
    command finished in 172ms
    triggering after callbacks for `deploy:update_code'
  * 2013-09-20 15:05:11 executing `deploy:assets:precompile'
    triggering before callbacks for `deploy:assets:precompile'
  * 2013-09-20 15:05:11 executing `deploy:assets:update_asset_mtimes'
  * executing "[ -e /store/mysite.com/rails/staging/shared/assets/manifest* ] && cat /store/mysite.com/rails/staging/shared/assets/manifest* || echo"
    servers: ["server.mysite.com"]
    [server.mysite.com] executing command
    command finished in 391ms
*** [deploy:update_code] rolling back
  * executing "rm -rf /store/mysite.com/rails/staging/releases/20130920190506; true"
    servers: ["server.mysite.com"]
    [server.mysite.com] executing command
    command finished in 934ms
/Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/psych/visitors/to_ruby.rb:292:in `instance_variable_set': `@AvenirLTStd-Book.eot' is not allowed as an instance variable name (NameError)
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/psych/visitors/to_ruby.rb:292:in `block in init_with'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/psych/visitors/to_ruby.rb:292:in `each'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/psych/visitors/to_ruby.rb:292:in `init_with'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/psych/visitors/to_ruby.rb:277:in `revive'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/psych/visitors/to_ruby.rb:219:in `visit_Psych_Nodes_Mapping'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/psych/visitors/visitor.rb:15:in `visit'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/psych/visitors/visitor.rb:5:in `accept'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/psych/visitors/to_ruby.rb:20:in `accept'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/psych/visitors/to_ruby.rb:231:in `visit_Psych_Nodes_Document'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/psych/visitors/visitor.rb:15:in `visit'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/psych/visitors/visitor.rb:5:in `accept'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/psych/visitors/to_ruby.rb:20:in `accept'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/psych/nodes/node.rb:35:in `to_ruby'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/1.9.1/psych.rb:128:in `load'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/recipes/deploy/assets.rb:26:in `parse_manifest'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/configuration/namespaces.rb:191:in `method_missing'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/configuration/namespaces.rb:191:in `method_missing'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/recipes/deploy/assets.rb:93:in `block (3 levels) in load'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/configuration/execution.rb:138:in `instance_eval'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/configuration/execution.rb:138:in `invoke_task_directly'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/configuration/callbacks.rb:25:in `invoke_task_directly_with_callbacks'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/configuration/execution.rb:89:in `execute_task'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/configuration/execution.rb:101:in `find_and_execute_task'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/callback.rb:38:in `call'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/configuration/callbacks.rb:141:in `block in trigger'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/configuration/callbacks.rb:141:in `each'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/configuration/callbacks.rb:141:in `trigger'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/configuration/callbacks.rb:23:in `invoke_task_directly_with_callbacks'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/configuration/execution.rb:89:in `execute_task'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/configuration/execution.rb:101:in `find_and_execute_task'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/callback.rb:38:in `call'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/configuration/callbacks.rb:141:in `block in trigger'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/configuration/callbacks.rb:141:in `each'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/configuration/callbacks.rb:141:in `trigger'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/configuration/callbacks.rb:27:in `invoke_task_directly_with_callbacks'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/configuration/execution.rb:89:in `execute_task'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/configuration/namespaces.rb:191:in `method_missing'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/configuration/namespaces.rb:110:in `block in define_task'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/recipes/deploy.rb:234:in `block (3 levels) in load'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/configuration/execution.rb:56:in `transaction'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/configuration/namespaces.rb:191:in `method_missing'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/recipes/deploy.rb:233:in `block (2 levels) in load'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/configuration/execution.rb:138:in `instance_eval'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/configuration/execution.rb:138:in `invoke_task_directly'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/configuration/callbacks.rb:25:in `invoke_task_directly_with_callbacks'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/configuration/execution.rb:89:in `execute_task'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/configuration/namespaces.rb:191:in `method_missing'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/configuration/namespaces.rb:110:in `block in define_task'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/recipes/deploy.rb:201:in `block (2 levels) in load'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/configuration/execution.rb:138:in `instance_eval'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/configuration/execution.rb:138:in `invoke_task_directly'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/configuration/callbacks.rb:25:in `invoke_task_directly_with_callbacks'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/configuration/execution.rb:89:in `execute_task'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/configuration/execution.rb:101:in `find_and_execute_task'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/cli/execute.rb:46:in `block in execute_requested_actions'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/cli/execute.rb:45:in `each'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/cli/execute.rb:45:in `execute_requested_actions'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/cli/help.rb:19:in `execute_requested_actions_with_help'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/cli/execute.rb:34:in `execute!'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/cli/execute.rb:14:in `execute'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/bin/cap:4:in `<top (required)>'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/bin/cap:23:in `load'
    from /Users/ilikepie/.rbenv/versions/1.9.3-p194/bin/cap:23:in `<main>'

正如您所收集的,@AvenirLTStd-Book 是我们使用的一种字体。您可能会从痕迹中注意到 psych 没有被用作宝石。第一次发生这种情况时,我没有将 psych 作为 gem,但从那时起我将它安装为 gem (v2.0.1) 并运行rbenv rehash,但我仍然遇到同样的错误。

关于 SO 有一个类似的问题,建议我用 syck 替换 psych,但由于 syck 未维护,我不习惯在生产中使用它。我宁愿找到这个的根本原因。谢谢!

【问题讨论】:

  • 你能发布 Psych 正在吐槽的生成资产清单的部分吗?如果您使用默认值,它将位于public/assets/manifest.yml

标签: ruby-on-rails gem capistrano asset-pipeline bundler


【解决方案1】:

我想通了。 Capistrano 是最近更新的宝石之一(到 2.15.5),我注意到 capistrano 在堆栈跟踪中。所以我降级到 capistrano 的最后一个已知工作版本,即 2.12.0,现在一切运行良好。在此之前,我的权宜之计是在~/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/capistrano-2.15.5/lib/capistrano/recipes/deploy/assets.rb:26 中添加YAML::ENGINE.yamler="syck",类似于推荐的here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-02
    • 1970-01-01
    • 1970-01-01
    • 2020-04-19
    • 1970-01-01
    • 1970-01-01
    • 2019-12-16
    • 2015-01-27
    相关资源
    最近更新 更多