当前位置:  开发笔记 > 编程语言 > 正文

当远程git在非标准路径上时使用capistrano

如何解决《当远程git在非标准路径上时使用capistrano》经验,为你挑选了2个好方法。

我的共享主机没有提供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.



1> Matt Van Hor..:

谢谢,楚 - 你让我走上了正确的道路.

只是使用:set :scm_command, "~/bin/git"
仍然给了我错误,因为我当地的git不在那个地方.

但是,以下似乎有效,并解决了我的问题:
set :scm_command, "~/bin/git"
set :local_scm_command, "/usr/local/bin/git"



2> ckim..:

问题是你已经设定好了

default_run_options[:pty] = true

这意味着您的.bash_profile或您通常的shell init文件将不会运行,但是当您将其设置为false时则不是这样 - 但是当您想要询问密码时会遇到问题.

要解决此问题,您可以在部署文件中手动设置PATH环境变量:

default_environment['PATH'] = "/your/path/to/git:/and/any/other/path/you/need"

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有