使用capistriano进行部署时出现rake版本错误:cap shell与ssh不同

时间:2012-12-17 19:09:43

标签: ruby-on-rails rake capistrano dreamhost

我将新的Rails应用程序部署到我的托管(Dreamhost)。 我使用Capistrano进行部署。

我跑了 cap deploy 没有问题

当我尝试运行上限部署时:迁移我收到以下错误: 无法在任何来源中找到rake-10.0.3

要检查发生了什么,我已经

cap shell
    which rake
    --> /home/myUser/.gems/bin/rake
    /home/myUser/.gems/bin/rake -V
    --> rake, version 0.8.7

然而,当我从ssh检查相同的信息时,我得到了

$ which rake
-->/home/myuser/.gems/bin/rake
$ /home/myuser/.gems/bin/rake -V
-->rake, version 10.0.3

我怎么可能得到这两个不同的结果? 有什么想法吗?

如果有帮助,我添加我的deploy.rb文件:

default_run_options[:pty] = true

set :user, 'XXX'
set :domain, 'XXX'
set :application, 'XXX'
set :repository,  "git@bitbucket.org:XXX"
set :deploy_to, "/home/#{user}/XXX"
set :deploy_via, :remote_cache
set :scm, 'git'
set :branch, 'master'
set :git_shallow_clone, 1
set :scm_verbose, true
set :use_sudo, false


default_environment["PATH"] = "/home/myUser/.gems/bin:$PATH"
set :shell, '/bin/bash'

server domain, :app, :web
role :db, domain, :primary => true

set :ssh_options, { :forward_agent => true }

namespace :deploy do
  task :restart do
    run "touch #{current_path}/tmp/restart.txt"
  end
end

谢谢!

2 个答案:

答案 0 :(得分:2)

解决!

GEM_PATH存在问题,我的特定宝石未加载。

以下添加到deploy.rb

default_environment [“GEM_PATH”] =“/ home / myUser / .gems:/usr/lib/ruby/gems/1.8” default_environment [“PATH”] =“/ home / myUser / .gems / bin:/ usr / lib / ruby​​ / gems / 1.8 / bin /:$ PATH”

答案 1 :(得分:0)

可能是你的Gemfile中设置了rake 0.8。 rake 10.0是最后安装的版本。