ruby-on-rails - 当远程 git 位于非标准路径上时使用 capistrano

标签 ruby-on-rails shell path capistrano deployment

我的共享主机没有提供 git,因此我将其构建并安装到 ~/bin 中。 当我运行它时,大多数命令都出现以下错误,尽管它们是成功的。

stdin: is not a tty

我可以通过添加以下内容来解决该问题:

default_run_options[:pty] = true

到我的deploy.rb,但随后我收到此错误,这会阻止部署:

sh: git: command not found

如何解决这两个错误?

我尝试使用 "PATH=$PATH:$HOME/bin"添加 ~/.ssh/environment 文件(并更改 sshd_config 以使用它),但它什么也没做。

似乎 capistrano 使用的任何 shell 都没有使用远程服务器上的 ~/.bashrc 或 ~/.bash_profile。

有什么想法如何在远程计算机上设置路径吗?

其他信息:我在本地使用 OS X,共享服务器是 Site5 上的 linux。

最佳答案

谢谢,Chu - 你让我走上了正确的道路。

仅使用:set :scm_command, "~/bin/git"
仍然给我错误,因为我的本地 git 不在那个地方。

但是,以下方法似乎有效,并且可以解决我的问题:
set :scm_command, "~/bin/git"<br/> set :local_scm_command, "/usr/local/bin/git"

关于ruby-on-rails - 当远程 git 位于非标准路径上时使用 capistrano,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/279705/

相关文章:

ruby-on-rails - rescue_from::AbstractController::ActionNotFound无法正常工作

linux - 在每个单词后加逗号

php - 使用多个 Yii 应用程序

ruby-on-rails - 如何在 ruby​​ 中使用 next 和 inject

ruby-on-rails - Rails 和 mongo 嵌入关系

bash - 预期脚本错误缺少右括号

python - 如何使用 tcpdump 或从头开始编写一个模仿 Fiddler 的程序?

python - 考虑不断变化的路径

.net - IO.FileInfo 奇怪的异常 "Illegal characters in path"当有任何非法字符

ruby-on-rails - 在 RSpec 中使用 let 和 subject 时未定义的方法响应