【发布时间】:2015-10-20 03:27:06
【问题描述】:
我有一个 Rails 应用程序通过 Capistrano3 部署到带有 RVM 的 Ubuntu。
我正在尝试使用 Eye gem 但无法执行。它是通过 Ubuntu 上的 RVM 安装的,我可以在 Ubuntu 上运行它就好了。
namespace :eye do
desc 'Load Eye'
task :load do
on roles(:app) do
execute "cd #{current_path} && eye load #{current_path}/lib/tasks/conductor.eye"
end
end
end
我得到的错误是:
bash: eye: command not found
上限中止!
如果我执行 bundle exec,我会得到同样的 bundler 错误..
如果我通过 Capistrano 运行 echo $PATH,我会得到:
BUG [f84df590] Command: echo $PATH
DEBUG [f84df590] /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
而 Ubuntu 上的 $PATH 是:
/home/cmsapplication/.rvm/gems/ruby-2.1.1/bin:/home/cmsapplication/.rvm/gems/ruby-2.1.1@global/bin:/home/cmsapplication/.rvm/rubies/ruby-2.1.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/cmsapplication/.rvm/bin:/home/cmsapplication/.rvm/bin
Capfile:
require 'capistrano/setup'
require 'capistrano/deploy'
require 'capistrano/rails'
require 'capistrano/bundler'
require 'capistrano/rvm'
require 'capistrano/puma'
require "whenever/capistrano"
Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r }
【问题讨论】:
-
您的
Capfile中有require 'capistrano/rvm'吗? -
是的,我可以很好地部署,它是 Capistrano 3
-
您可以将您的 Capfile 添加到问题中吗?
-
不熟悉 rvm,只对 cap 有一点了解,但总的来说,这似乎是一个可以通过将
eye替换为`which eye`来解决的问题。 -
这失败了,“退出状态:1”,没有其他信息
标签: ruby-on-rails ubuntu path rvm capistrano