0

运行此 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 个类似的任务)。

感谢您对此的任何帮助。

4

3 回答 3

3

从 capistrano 登录的同一目录手动操作,它可以工作。

这没什么,Capistrano 创建了一个非登录 tty,这意味着您的配置文件、点文件等没有运行。

ssh root@example.de -t /bin/sh

这是将环境与 Capistrano 进行比较的一种更可靠的方法,(尽管这比 Capistrano 使用的功能更全面。

于 2012-05-21T06:44:19.493 回答
0

@dbra over on stack overflow 指出我需要完整的 rake 路径。

于 2012-05-22T00:55:19.777 回答
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

根据bundle exec远程服务器上的 ruby​​ 环境,可能会建议在命令前面使用。

于 2012-05-21T03:12:55.763 回答