我的共享主机没有提供git,所以我构建并安装到〜/ bin中.当我运行它时,我在大多数命令上遇到以下错误,尽管它们是成功的.
stdin: is not a tty
我可以通过添加以下内容解决该问题
default_run_options[:pty] = true
到我的deploy.rb,但后来我得到了这个阻止部署的错误:
sh: git: command not found
我该如何解决这两个错误?
我尝试添加〜/ .ssh/environment文件"PATH=$PATH:$HOME/bin"
(并更改sshd_config以使用它),但它什么也没做.
似乎capistrano使用的shell不使用远程服务器上的〜/ .bashrc或〜/ .bash_profile.
任何想法如何在远程机器上设置路径?
其他信息:我在本地使用OS X,共享服务器是Site5上的linux.
谢谢,楚 - 你让我走上了正确的道路.
只是使用:set :scm_command, "~/bin/git"
仍然给了我错误,因为我当地的git不在那个地方.
但是,以下似乎有效,并解决了我的问题:
set :scm_command, "~/bin/git"
set :local_scm_command, "/usr/local/bin/git"
问题是你已经设定好了
default_run_options[:pty] = true
这意味着您的.bash_profile或您通常的shell init文件将不会运行,但是当您将其设置为false时则不是这样 - 但是当您想要询问密码时会遇到问题.
要解决此问题,您可以在部署文件中手动设置PATH环境变量:
default_environment['PATH'] = "/your/path/to/git:/and/any/other/path/you/need"