2011-12-08 61 views
0

我部署到一個Debian 6服務器,使用Apache,客運,Ruby1.9.1爲什麼我在部署Rails應用程序時失敗:「sh -c'cd/var/www/releases ...'」?

當我運行 「帽部署」 或 「帽部署:遷移」 我得到這個錯誤:

[out :: ip.address] Could not find multi_json-1.0.3 in any of the sources 
** [out :: ip.address] Run `bundle install` to install missing gems. 
** [out :: ip.address] 
    command finished in 1037ms 
*** [deploy:update_code] rolling back 
    * executing "rm -rf /var/www/releases/20111208004427; true" 
    servers: ["ip.address"] 
    [ip.address] executing command 
    command finished in 489ms 
failed: "sh -c 'cd /var/www/releases/20111208004427 && /usr/bin/rake1.9.1 RAILS_ENV=production RAILS_GROUPS=assets assets:precompile'" on ip.address 

請注意0​​和failed sh -c ...部分。

我已經試過這個export PATH=/var/lib/gems/1.9.1/bin:${PATH}並嘗試了許多其他可能的解決方案,但似乎沒有任何工作。

順便說一下,NO rvm。

回答

1

確保您config/deploy.rb文件包括與該行捆紮機的Capistrano的任務:

require 'bundler/capistrano' 

這會告訴它更新的代碼後運行bundle install,但它運行其他任務,例如rake assets:precompile之前。

+0

仍然出現此錯誤:[out :: ip.address] sh:bundle:not found – leonel

+0

您確實需要登錄到您的服務器並確保在部署之前安裝了bundler :.如果您使用的是全系統ruby(而不是rvm),那麼登錄到您的服務器並運行「sudo gem install bundler」,那麼您的部署應該可以工作。 –

+0

已經嘗試過,然後在命令行中運行bundle並找不到命令。當我這樣做時'export PATH =/var/lib/gems/1.9.1/bin:$ {PATH}'捆綁包可以工作。所以我將它添加到我部署並部署的用戶的.bashrc文件中,但仍然收到'找不到包的錯誤'。部署用戶只擁有其主文件和www文件夾的所有權。 – leonel

相關問題