2012-05-01 54 views
1

我想調出一個服務器上的臨時環境。我現在正在使用capistrano進行部署。問題與capistrano和耙使用ext/multistage和耙0.9.2.2對0.9.2在部署的服務器上

我做的EXT /多級擴展的變化,但我得到以下錯誤:

# Add RVM's lib directory to the load path. 
    * executing "cd /data/sites/staging.domain.com/apps/app/releases/20120501225426 && rake RAILS_ENV=production db:migrate" 
    servers: ["173.111.158.135"] 
    [173.111.158.135] executing command 
*** [err :: 173.111.158.135] rake aborted! 
*** [err :: 173.111.158.135] Could not find rake-0.9.2.2 in any of the sources 
*** [err :: 173.111.158.135] 
*** [err :: 173.111.158.135] (See full trace by running task with --trace) 
*** [err :: 173.111.158.135] 
    command finished in 1332ms 
failed: "rvm_path=/usr/local/rvm /usr/local/rvm/bin/rvm-shell '1.9.2' -c 'cd /data/sites/staging.domain.com/apps/app/releases/20120501225426 && rake RAILS_ENV=production db:migrate'" on 173.111.158.135 

在我的Gemfile我:

gem 'rake', '0.9.2.2' 
我的本地機器上

,我得到:

Tue May 01$ rake -V 
rake, version 0.9.2.2 
Tue May 01$ 

在服務器上,我有:

#rake -V 
rake, version 0.9.2 

#rake 
Could not find rake-0.9.2.2 in any of the sources 
Run `bundle install` to install missing gems. 

如果我運行以下命令:

# which ruby 
/usr/local/rvm/rubies/ruby-1.9.2-p290/bin/ruby 
# which rake 
/usr/local/rvm/gems/ruby-1.9.2-p290/bin/rake 
# /usr/local/rvm/gems/ruby-1.9.2-p290/bin/rake -V 
rake, version 0.9.2 

蓋錯誤似乎有點神祕。任何人都可以幫我解決這個問題嗎?爲什麼我的另一個腳本腳本可以工作,如果我指定了0.9.2.2並且它只有9.2?有沒有一種方法需要我強制capistrano安裝我目前沒有做的耙0.9.2.2,我該怎麼做?

THX

回答

0

,當你忘記bundle exec rails something例如這錯誤出現一般。卡皮斯特拉諾問/要捆綁命令捆綁安裝這些寶石嗎?

編輯: 是的,我打賭你的項目不期待:rake RAILS_ENV=production db:migrate但也許bundle exec rake RAILS_ENV=production db:migrate

但我不確定你是如何設置你的帽子的。

這是一個rails 3項目是啊?

+0

嗯...我會在服務器上運行?它看起來像問題是耙0.9.2和它想要0.9.2.2 – timpone

+0

確切的消息通常是一個命令中錯過'bundle'的故事符號。就像如果你在一個需要'bundle exec rails g model ....'的項目上運行'rails g model Blah',你會看到這個消息。所以我在猜測,也許這是一個捆綁的東西,而不是特定的帽子。 – pjammer

+0

我認爲這是一個rake版本問題,但我不確定如何解決它。 – timpone