2014-10-01 55 views
0

我用厚實的我Capistrano的安裝,掙扎時,我的主機上去遷移服務器:捆紮機在部署模式沒有找到寶石

Capistrano3 deploy fails after migrating the server

一件事,我遇到了那個曾經工作的老就好了機器現在似乎是一個爛攤子是捆綁:

我能順利通過Capistrano的運行捆綁:

cap staging bundler:install 

這結果在下面的命令在服務器上

/usr/bin/env bundle install --binstubs \ 
/var/www/mydomain.com/subdomains/dev/shared/bin \ 
--path /var/www/mydomain.com/subdomains/dev/shared/bundle \ 
--without development test \ 
--deployment 

但現在,當我跑我的服務器cap staging deploy:start_passenger其結果如下:

/usr/bin/env passenger start --socket tmp/passenger.socket -e staging -d 

然後我在我的日誌文件中的錯誤,瑞克失蹤:

Could not find rake-10.2.2 in any of the sources (Bundler::GemNotFound) 
<pre> /var/www/mydomain.com/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.7.3/lib/bundler/spec_set.rb:92:in `block in materialize&#39; 

什麼是很奇怪的,是一個事實,即紅寶石版2.1.2(一個我真正使用)顯示了2.1.0. I have no visible reference to 2.1.0`在我的項目,我的Gemfile中包含:

ruby '2.1.2' 

由於RBENV用於在服務器上,我可以運行rbenv versions這表明我:

system 
* 2.1.2 (set by /var/www/mydomain.com/.rbenv/version) 

那麼,這是否怪異2.1.0來從,以及如何確保我的服務器具有所需的所有依賴關係。

回答

0

我終於設法在新服務器上部署我的應用程序。

這些步驟是必需的。然而,因爲我用它打了幾個小時,它的一些可能是多餘的:

  • gem install bundler && rbenv rehash:這是必需的,因爲bundler是我需要外面的Rails應用程序上下文的依賴關係方面的寶石之一。
  • 另一個是gem install passenger && rbenv rehash
  • 我現在用https://github.com/capistrano/rbenv但對於這一點,我不得不從我的系統,這是一個一步我是不是太熱衷做的擦拭RVM。
  • 我必須確保當前的符號鏈接創建,所以我說這個的deploy.rb

    after 'deploy:set_current_revision', 'deploy:symlink:release' 
    
  • 我不得不刪除一些共享目錄:

    rm -fr bin 
    rm -fr shared/bundle/ 
    rm -fr bundle 
    
相關問題