使用软件包

时间:2017-05-04 13:56:51

标签: capistrano digital-ocean

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 我有你在顶部看到的错误

1 个答案:

答案 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