2

我正在尝试使用 Capistrano 3.0 / Thin / NGINX 部署到 Raspberry Pi 我已经让它工作了,但是在我的重启块中我有

namespace :deploy do

  desc 'Restart application'
  task :restart do
    on roles(:app), in: :sequence, wait: 5 do
      execute '/etc/init.d/thin restart'
      execute 'sudo /etc/init.d/nginx restart'
    end
  end
end

我很高兴

 INFO [128fb9a3] Running /etc/init.d/thin restart on raspberrypi.local
DEBUG [128fb9a3] Command: /etc/init.d/thin restart
DEBUG [128fb9a3]    /usr/bin/env: 
DEBUG [128fb9a3]    ruby_executable_hooks
DEBUG [128fb9a3]    : No such file or directory
DEBUG [128fb9a3]

我在这里尝试了答案,但没有成功。

如果我通过 SSH 连接到 PI 并以 root 身份运行它们,这些命令似乎可以正常工作。

我应该提一下,我非常使用本教程:http ://creativepsyco.github.io/blog/2013/04/10/deploying-rails-on-nginx-and-thin/进行设置

4

3 回答 3

6

完全骇人听闻的解决方案

宝石rvm1-capistrano3最终没有为我工作,所以我最终只是硬链接ruby_executable_hooksruby就像这样

$ ln -s `which ruby_executable_hooks` /usr/bin/ruby_executable_hooks
$ ln -s `which ruby` /usr/bin/ruby

警告,这假设 ruby​​ 是与 RVM 一起安装的,您可能需要确保不会通过执行类似的操作来覆盖某些内容ls -l /usr/bin | grep ruby

我也意识到这完全是骇人听闻的,在生产服务器上可能不合适,但它在我的 Raspberry-Pi 上对我有用......

于 2013-10-30T04:10:58.160 回答
3

您是否尝试过切换到系统红宝石?

rvm use system

然后在那里安装 capistrano。这将使您的rvm问题无法解决。

于 2013-11-19T14:40:23.320 回答
2

您链接的文章指的是旧版本的 Capistrano。

看起来您正在使用 rvm(这ruby_executable_hooks似乎是 RVM 的东西),在这种情况下,您将需要 Cap 3 兼容的 RVM 适配器之一,在名为capistrano/rvm(在 Capistrano 帐户下)的Github 上找到它们rvm1-capistrano3,这似乎是由与 rvm 核心团队保持一致的人维护。

于 2013-10-29T18:30:51.683 回答