我正在尝试rake entrprise:pull
使用 sshkit 使用 rake 任务从 Rails 应用程序在远程系统上运行 rake 任务,而我正在使用 rvm。
耙任务
require 'sshkit'
require 'sshkit/dsl'
include SSHKit::DSL
namespace :app do
desc "pulls the records form remote server"
task :pull => :environment do
host = SSHKit::Host.new("username@ip")
on host do |h|
within("/home/username/my-rails-app/") do
execute :rake, "enterprise:pull"
end
end
end
end
在控制器中,我调用 rake 任务如下
def index
%x(rake app:pull)
end
rake app:pull 试图 rake enterprise:pull
在远程系统内部运行,当时它抛出/usr/bin/env: ruby: No such file or directory
错误
但是当我 ssh 进入远程系统ssh username@ip
并且如果运行 'rake enterprise:pull' 它工作正常。my-rails-app 使用 capistrano-3 和 rvm 部署。
如何摆脱这个问题?