2012-12-17 28 views
0

我正在將我的新Rails應用程序部署到我的託管(Dreamhost)。 我正在使用Capistrano進行部署。使用capistriano部署時出現rake版本錯誤:cap shell與ssh不同

我拼命地跑 cap deploy 沒有問題

當我試圖運行帽部署:遷移我收到以下錯誤: 無法在任何來源

找到耙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, "[email protected]: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

解決!

有一個GEM_PATH的問題,其中我沒有加載的特定寶石。

繼加入deploy.rb

default_environment [ 「GEM_PATH」] = 「/家/ MYUSER/.gems:/usr/lib/ruby/gems/1.8」 default_environment [ 「PATH」] =「 /home/myUser/.gems/bin:/usr/lib/ruby/gems/1.8/bin/:$PATH「

0

可能是rake 0.8在您的Gemfile中設置。 而耙機10.0是上次安裝的版本。

+0

不,它在gemfile.lock中設置爲10.0.3。也沒有成功將它添加到gemfile。 – Mateu

相關問題