2011-05-26 162 views
2

一個新的capistrano部署,所以我很努力得到這個正常工作。我發現另一個條目說這是一個符號鏈接問題,但我不認爲這是因爲「cap dev deploy」正確地創建了當前的符號鏈接。我在這個服務器上有一個階段和一個開發環境(/ apps/myhost/dev和/ apps/myhost/stage),我正在將我最近的git更改從git推到開發環境。我ssh作爲應用程序的用戶,並做到:capistrano開發部署失敗

cap dev deploy 

我收到以下錯誤:

failed: "rvm_path=/usr/local/rvm /usr/local/bin/rvm-shell '[email protected]' -c 'bundle install --gemfile /apps/myhost/dev/releases/20110526014237/Gemfile --path /apps/myhost/dev/shared/bundle --deployment --quiet --without development test'" on dev.myhost.com 

這是由很多的前面:

rm: cannot remove directory `/apps/myhost/dev/releases/20110526014237/test/functional': No such file or directory 

我承擔RM錯誤是因爲目錄和文件已被清理,但我不確定rvm_path rvm-shell失敗的原因?

+0

好的。我更新了所有的gem和cap現在正在執行:'code'bash:/usr/local/rvm/gems/[email protected]/bin/cap:/ usr/local/rvm/rubies/ruby -1.8.7-p334/bin/ruby​​:錯誤的解釋器:沒有這樣的文件或目錄 'code' – 2011-05-27 00:15:36

+0

修復了糟糕的解釋器錯誤,現在我回到了我開始的位置:'code' failed:「rvm_path =/usr /本地/ rvm/usr/local/rvm/bin/rvm-shell'代碼' – 2011-05-27 03:13:51

回答

1

經過我的/應用/ MYAPP的/ dev /配置/部署/目錄,發現這些文件:

dev.rb 
stage.rb 
prod.rb 

已經建立的角色和服務器變量,因此它試圖部署兩次造成鎖。刪除了服務器行,並能夠部署。

關於信任;將此行添加到config/deploy.rb中:

task :trust_rvmrc do 
    run "rvm rvmrc trust #{latest_release}" 
end 
1

如果您通過SSHing自己運行失敗命令,會發生什麼情況?它看起來沒有安裝捆綁軟件。你有沒有安裝Bundler?我從未使用Cap在/ apps /下部署兩個環境。你能在一個環境中工作嗎?最後,我會嘗試解決這些RM錯誤,然後再嘗試解決它們之後的任何問題。一心一意。

+0

Ian,感謝您的反饋,我確實已經SSH inng了。 prod .rb文件都設置了服務器和角色變量,你只能指定一個或另一個,我從每個服務器變量中刪除了服務器變量(因爲它試圖部署到URL以及在角色下指定的IP)現在剩下的就是讓rvm rmrc在每次部署時信任! – 2011-05-28 05:20:06