sudo cap production deploy
(Backtrace仅限于导入的任务) 帽子流产! SSHKit :: Runner :: ExecuteError:执行为deploy@139.59.225.216时出现异常:bundle退出状态:127 捆绑stdout:没有写 bundle stderr:/ usr / bin / env:'bundle':没有这样的文件或目录
SSHKit :: Command :: Failed:bundle退出状态:127 捆绑stdout:没有写 bundle stderr:/ usr / bin / env:'bundle':没有这样的文件或目录
任务:TOP => deploy:updated =>捆绑:安装 (通过使用--trace运行任务查看完整跟踪) 部署失败并出现错误:执行为deploy@139.59.225.216时出现异常:bundle退出状态:127 捆绑stdout:没有写 bundle stderr:/ usr / bin / env:'bundle':没有这样的文件或目录
**部署失败 **有关详细信息,请参阅log / capistrano.log。这是最后20行:
DEBUG [fee00417]以0.208秒结束,退出状态为1(失败)。
INFO [833f8be9]正在运行/ usr / bin / env ln -s / home / deploy / qastflood / shared / public / assets / home / deploy / qastflood / releases / 20170504134248 / public / assets as deploy@139.59.225.216 < / p>
DEBUG [833f8be9]命令:/ usr / bin / env ln -s / home / deploy / qastflood / shared / public / assets / home / deploy / qastflood / releases / 20170504134248 / public / assets
INFO [833f8be9]在0.122秒内完成,退出状态为0(成功)。
DEBUG [a48a6eba]如果测试就跑! -d / home / deploy / qastflood / releases / 20170504134248;然后回显“目录不存在'/ home / deploy / qastflood / releases / 20170504134248'”1&gt;&amp; 2;假;如deploy@139.59.225.216
DEBUG [a48a6eba]命令:如果测试! -d / home / deploy / qastflood / releases / 20170504134248;然后回显“目录不存在'/ home / deploy / qastflood / releases / 20170504134248'”1&gt;&amp; 2;假;网络
DEBUG [a48a6eba]以0.194秒结束,退出状态为0(成功)。
DEBUG [83174667]运行/ usr / bin / env bundle check --path / home / deploy / qastflood / shared / bundle as deploy@139.59.225.216
DEBUG [83174667]命令:cd / home / deploy / qastflood / releases / 20170504134248&amp;&amp; / usr / bin / env bundle check --path / home / deploy / qastflood / shared / bundle
DEBUG [83174667] / usr / bin / env:
DEBUG [83174667]'捆绑'
DEBUG [83174667]:没有这样的文件或目录
DEBUG [83174667]
DEBUG [83174667]在0.119秒内完成,退出状态为127(失败)。
INFO [c0e5b256]运行/ usr / bin / env bundle install --path / home / deploy / qastflood / shared / bundle - without development test --deployment --quiet as deploy@139.59.225.216
DEBUG [c0e5b256]命令:cd / home / deploy / qastflood / releases / 20170504134248&amp;&amp; / usr / bin / env bundle install --path / home / deploy / qastflood / shared / bundle --without development test --deployment --quiet
DEBUG [c0e5b256] / usr / bin / env:
DEBUG [c0e5b256]'bundle'
DEBUG [c0e5b256]:没有这样的文件或目录
DEBUG [c0e5b256]
我无法在Digitalocean中部署Ruby on Rails
我尝试使用https://gorails.com/deploy/ubuntu/16.04
在最后一步&gt;&gt; cap production deploy
我有你在顶部看到的错误
答案 0 :(得分:0)
这是Capsitrano默认情况下如何使用非交互式,非登录外壳的问题。换句话说,由于Capistrano登录的方式,bundle
不在$PATH
中。
在线Capistrano文档中对此主题的讨论很长:https://capistranorb.com/documentation/faq/why-does-something-work-in-my-ssh-session-but-not-in-capistrano/
解决方法是弄清楚bundle
的安装位置,然后将其添加到〜/ .bashrc中的路径中(对于非登录,非交互式外壳,应加载 )。
为避免添加两次,您可以仔细地重新配置bash配置文件的所有疯狂层,使其正常工作,或者可以进行一些$PATH
嗅探并有条件地添加路径,例如:
path_to_bundle="/some/path"
if [ -n "${PATH##*${path_to_bundle}}" -a -n "${PATH##*${path_to_bundle}:*}" ]; then
export PATH=$PATH:${path_to_bundle}
fi