在尝试使用capistrano进行部署时,为什么会出现Psych错误?

我目前正在我的Rails 3.2.13应用程序中设置capistrano。 我收到以下错误/详细信息(包括“第1行第1列不允许使用控制字符”)。 我已经做了一些搜索,但没有看到任何与我有关的事情。

我正在使用rvm-capistrano和ruby 2.0.0-p195。 我最近将我的应用程序所需的环境变量移动到.bashrc中。

... * 2013-06-10 15:18:32 executing `deploy:assets:update_asset_mtimes' * executing "[ -e /home/deployer/apps/super_rad_app/shared/assets/manifest* ] && cat /home/deployer/apps/super_rad_app/shared/assets/manifest* || echo" servers: ["107.20.249.163"] [107.20.249.163] executing command command finished in 6238ms *** [deploy:update_code] rolling back * executing "rm -rf /home/deployer/apps/super_rad_app/releases/20130610221258; true" servers: ["107.20.249.163"] [107.20.249.163] executing command ** [out :: 107.20.249.163] Using /home/deployer/.rvm/gems/ruby-2.0.0-p195 command finished in 6623ms /home/nate/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/2.0.0/psych.rb:205:in `parse': (): control characters are not allowed at line 1 column 1 (Psych::SyntaxError) from /home/nate/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/2.0.0/psych.rb:205:in `parse_stream' from /home/nate/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/2.0.0/psych.rb:153:in `parse' from /home/nate/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/2.0.0/psych.rb:129:in `load' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/recipes/deploy/assets.rb:26:in `parse_manifest' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/configuration/namespaces.rb:191:in `method_missing' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/configuration/namespaces.rb:191:in `method_missing' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/recipes/deploy/assets.rb:93:in `block (3 levels) in load' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/configuration/execution.rb:138:in `instance_eval' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/configuration/execution.rb:138:in `invoke_task_directly' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/configuration/callbacks.rb:25:in `invoke_task_directly_with_callbacks' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/configuration/execution.rb:89:in `execute_task' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/configuration/execution.rb:101:in `find_and_execute_task' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/callback.rb:38:in `call' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/configuration/callbacks.rb:141:in `block in trigger' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/configuration/callbacks.rb:141:in `each' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/configuration/callbacks.rb:141:in `trigger' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/configuration/callbacks.rb:23:in `invoke_task_directly_with_callbacks' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/configuration/execution.rb:89:in `execute_task' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/configuration/execution.rb:101:in `find_and_execute_task' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/callback.rb:38:in `call' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/configuration/callbacks.rb:141:in `block in trigger' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/configuration/callbacks.rb:141:in `each' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/configuration/callbacks.rb:141:in `trigger' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/configuration/callbacks.rb:27:in `invoke_task_directly_with_callbacks' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/configuration/execution.rb:89:in `execute_task' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/configuration/namespaces.rb:191:in `method_missing' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/configuration/namespaces.rb:110:in `block in define_task' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/recipes/deploy.rb:234:in `block (3 levels) in load' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/configuration/execution.rb:56:in `transaction' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/configuration/namespaces.rb:191:in `method_missing' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/recipes/deploy.rb:233:in `block (2 levels) in load' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/configuration/execution.rb:138:in `instance_eval' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/configuration/execution.rb:138:in `invoke_task_directly' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/configuration/callbacks.rb:25:in `invoke_task_directly_with_callbacks' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/configuration/execution.rb:89:in `execute_task' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/configuration/namespaces.rb:191:in `method_missing' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/configuration/namespaces.rb:110:in `block in define_task' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/recipes/deploy.rb:201:in `block (2 levels) in load' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/configuration/execution.rb:138:in `instance_eval' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/configuration/execution.rb:138:in `invoke_task_directly' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/configuration/callbacks.rb:25:in `invoke_task_directly_with_callbacks' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/configuration/execution.rb:89:in `execute_task' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/configuration/execution.rb:101:in `find_and_execute_task' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/cli/execute.rb:46:in `block in execute_requested_actions' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/cli/execute.rb:45:in `each' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/cli/execute.rb:45:in `execute_requested_actions' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/cli/help.rb:19:in `execute_requested_actions_with_help' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/cli/execute.rb:34:in `execute!' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/cli/execute.rb:14:in `execute' from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/bin/cap:4:in `' from /home/nate/.rvm/gems/ruby-2.0.0-p195/bin/cap:23:in `load' from /home/nate/.rvm/gems/ruby-2.0.0-p195/bin/cap:23:in `' from /home/nate/.rvm/gems/ruby-2.0.0-p195/bin/ruby_noexec_wrapper:14:in `eval' from /home/nate/.rvm/gems/ruby-2.0.0-p195/bin/ruby_noexec_wrapper:14:in `' 

这来自.bashrc可能存在的问题。 请查看此问题以获取更多详细信息: 在此上下文中不允许部署Capistrano映射时出现psych.rb错误

我也有这个问题,但原因不同。 我们使用的是rvm-capistrano,我们的项目有一个.rvmrc文件。 deploy:assets:update_asset_mtimes Capistrano任务在服务器上运行shell命令以捕获资产清单的内容。 部署中存在.rvmrc文件生成了“你正在使用’.rvmrc’,它需要信任……”来自RVM的警告,它无意中成为了shell命令输出的一部分。 我只是在使用puts语句在我的本地capistrano gem中检测assets.rb配方后才看到这个。

我通过在服务器上运行“rvm rvmrc warning ignore all.rvmrcs”修复了我的问题,然后再次部署。

另一个选择是从.rvmrc和整个信任的东西切换到使用.ruby-version方法。 请参阅使用rvmrc或ruby-version文件使用RVM设置项目gemset? 详情。