2017-02-01 198 views
2

我試圖上傳我的Rails應用程序有:Capistrano的版本衝突

bin/cap production deploy 

但部署與此錯誤消息失敗:

You have requested:                  
    capistrano ~> 3.3.0                 

The bundle currently has capistrano locked at 3.7.1.          
Try running `bundle update capistrano`             

If you are updating multiple gems in your Gemfile at once,        
try passing them all to `bundle update` 

我試圖通過運行來解決該問題:

bundle update capistrano 

但這並沒有解決它。

我不明白的是我沒有看到我的應用程序'要求capistrano 3.3.0'。在我的Gemfile中,我將Capistrano設置爲3.7版本。

而且我還使用了Capistrano的寶石:

gem capistrano-rails, '~> 1.2' 
gem capistrano3-delayed-job, '~> 1.3' 
gem capistrano-figaro-yml 

我的Gemfile是:

https://github.com/acandael/personalsite/blob/master/Gemfile

是否有人知道我怎麼能解決這個Capistrano的版本問題?

感謝您的幫助,

安東尼

+0

什麼是你'Gemfile中的內容。羅ck'? – Markus

+0

嘗試檢查你的'confing/deploy.rb',看看你是否鎖定了capistrano版本。 – ShallmentMo

回答

1

請按正確的順序所有步驟(不跳過任何,因爲你做到了)

  1. cd到你的項目目錄
  2. 運行bundle exec gem uninstall capistrano -a從你的包
  3. 運行gem uninstall capistrano -a刪除所有Capistrano的版本從系統刪除所有Capistrano的版本。請注意,您可能需要以root權限運行這個,如果你得到一個錯誤信息
  4. 運行bundle install
  5. 運行bundle exec gem list capistrano這應該輸出所有包含「Capistrano的一個名爲」安裝寶石。你應該有只有一個Capistrano的寶石
  6. 檢查版本文件配置/ deploy.rb配置/部署/ *。RB如果你有一個lock 3.x.x指令,並確保它匹配的步驟中包上下文與bundle exec cap production deploy安裝版本顯示5
  7. 運行帽(使用此命令行究竟,不使用斌/ CAP)
+0

我做了所有的步驟。 capistrano 3.3.0的錯誤消失了。但是現在我得到這個錯誤:SSHKit :: Runner :: ExecuteError:以[email protected]執行時出現異常:bundle退出狀態:137 – Toontje

+0

好,所以您修復了gem問題。此「捆綁退出狀態:137」錯誤是無關的。嘗試http://stackoverflow.com/questions/23390311/rails-4-1-cant-deploy-via-capistrano-3否則打開一張新票。 – Benj

+0

是的,事實證明,重新啓動服務器修復了束退出狀態:137錯誤。非常感謝你的幫助! – Toontje

0

嘗試bundle exec cap production deploy

+0

已經嘗試過,沒有解決它 – Toontje

+0

刪除你的gemfile.lock然後綁定安裝並重試! –

+0

嘗試過,但得到相同的錯誤信息。問題是,錯誤說我有capistrano 3.3.0,而Gemfile.lock的版本是3.7.1。但是我在Gemfile中找不到這個版本3.3.0。我錯過了什麼嗎? – Toontje

0

嘗試刪除YOUR_APP/.bindle目錄,然後再次運行bundle install

+0

我刪除了.bundle目錄並且運行bundle install,但是我我仍然得到相同的錯誤信息 – Toontje