【问题标题】:/usr/bin/env: ruby_executable_hooks : No such file or directory/usr/bin/env: ruby​​_executable_hooks : 没有这样的文件或目录
【发布时间】:2013-10-29 14:32:52
【问题描述】:

我正在尝试使用 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]

我尝试了here 的答案,但没有成功。

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

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

【问题讨论】:

    标签: nginx capistrano raspberry-pi thin


    【解决方案1】:

    完全骇客的解决方案

    宝石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 上对我有用...

    【讨论】:

      【解决方案2】:

      您是否尝试过切换到系统 ruby​​?

      rvm use system
      

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 2016-02-20
          • 2013-03-11
          • 1970-01-01
          • 2017-03-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-04-08
          相关资源
          最近更新 更多