运行此capistrano任务时我遇到此错误(我自己的 - cap deploy:show_pointers):
* executing `deploy:show_pointers'
* executing "cd /home/mydomain/public_html/site_folders/rails/current; rake app:show_pointers"
servers: ["mydomain.net"]
[mydomain.net] executing command
** [out :: mydomain.net] (in /home/mydomain/public_html/site_folders/rails/releases/20120521025150)
** [out :: mydomain.net] Could not find rake-0.9.2 in any of the sources
** [out :: mydomain.net] Try running `bundle install`.
command finished in 1584ms
failed: "sh -c 'cd /home/mydomain/public_html/site_folders/rails/current; rake app:show_pointers'" on mydomain.net
然而,当我跑
时sh -c 'cd /home/mydomain/public_html/site_folders/rails/current; rake app:show_pointers
手动从capistrano登录的同一个目录,它的工作原理。我有capistrano设置为不使用sudo,所以这不应该是问题,但听起来可能是这样,因为上面的命令失败了sudo。我认为这是一个用户问题,或者可能是环境变量问题。或者我不确定是什么。
任何建议。这是一项已经是rake任务的任务,但它将帮助我不必每次运行时都必须登录服务器(大约10个更喜欢它)。
感谢您的任何帮助。
答案 0 :(得分:3)
手动从capistrano登录的同一个目录,它可以工作。
没有说什么,Capistrano创建了一个非登录tty,这意味着你的个人资料,点文件等都没有运行。
ssh root@example.de -t /bin/sh
这是将环境与Capistrano进行比较的更可靠的方法(尽管这甚至比Capistrano使用的功能更加全面。
答案 1 :(得分:0)
鉴于这些错误消息,我有几个想法:
** [out :: mydomain.net] Could not find rake-0.9.2 in any of the sources
** [out :: mydomain.net] Try running `bundle install`.
该应用无法找到rake
命令。您是否尝试在远程计算机上运行bundle install
作为其推荐?
另一种选择可能是将命令更改为
cd /home/mydomain/public_html/site_folders/rails/current; bundle exec rake app:show_pointers
根据远程服务器上的ruby环境,可能会建议在命令前使用bundle exec
。
答案 2 :(得分:0)