Я столкнулся с той же проблемой ранее сегодня.Подход, который я использовал для решения этой проблемы, заключался в следующем:
1) Запустите
cap shell
на той же машине, на которой вы обычно запускаете cap deploy.Затем выполните
env | sort
. Запускает команду на удаленном сервере.Скопируйте и вставьте выходные данные в локальный текстовый файл, например capenv.txt
2) SSH, на тот же удаленный сервер и выполните ту же команду, а именно env |Сортировать.Сохраните это локально как текстовый файл, например, sshenv.txt
3) Разместите два файла и посмотрите, что находится в sshenv.txt, а не в capenv.txt - это, скорее всего, там, где ваша проблема.
< ++CAP ++
< _=/bin/sh
---
> ++ SSH ++
> __array_start=0
14a15
> PS1=\[\e]2;tracker@charlotte\a\e[0;31m LIVE:\u@\h \w> \e[0m
18d18
< rvm_env_string=ruby-1.9.3-p194
21d20
< rvm_ruby_string=ruby-1.9.3-p194
27c26,28
< USER=tracker
\ No newline at end of file
---
> USER=tracker
> USES_BASHRC=bashrc
> _=/usr/bin/env
4) Я сразу заметил, что интерпретатор оболочки не был установлен на bash.Это можно исправить, добавив
set :shell, '/usr/bin/bash'
в файл deploy.rb.Это решило мою проблему