2010-08-31 46 views
45

的Rails 3.0.0,乘客2.2.15安裝git的寶石:的Rails 3:乘客無法找到捆綁

  • 創建一個新的Rails項目
  • 添加gem 'paperclip', :git => 'git://github.com/lmumar/paperclip.git', :branch => 'rails3' 到你的Gemfile
  • 待辦事項bundle install
  • 一切OK,開始rails/script server &訪問也適用
  • 然而,隨着客運訪問時,它說:

git://github.com/lmumar/paperclip.git(在rails3)沒有簽出。請運行bundle install(捆紮機:: GitError)

我已經試過bundler pack(不利於)和設置BUNDER_HOME到〜/ .bundler(迴紋針的git得到由bundler install安裝在那裏)在.htaccess和配置不同的地方/*.rb,但這也不成功。

〜/ .bundler與Rails項目擁有相同的用戶(Passenger在該用戶下運行),因此它不會成爲權限問題。 sudo安裝並由bundle install調用。

任何提示?

+0

這是不是'serverfault'的更好的候選人,因爲它涉及到設置'nginx'或'apache'? – alternative 2010-08-31 00:35:41

+0

我不明白。 Passenger遇到問題,使用Apache。 – junique 2010-08-31 00:50:39

+1

'捆綁包'解決了我的問題。 http://stackoverflow.com/questions/2494399/deploying-rails3-apps-with-bundler-and-phusion-passenger-bundle-dir-not-found – zires 2012-04-19 03:16:55

回答

22

解決方案(我花了幾個小時):

馬確保RAILS_ROOT/.bundle/config(SETENV等沒有工作對我來說)包含:

--- 
BUNDLE_PATH: /home/xxxxx/.bundler 

注意BUNDLE_PATH,不BUNDLER_PATH!還有一個DISABLED_SHARED_GEMS = 1條目,我將其刪除。

即使從Passenger加載,bundler也能識別正確的路徑。如果沒有乘客,它總是工作(並用/home/xxxxx/.bundler,如問題所說)

+0

拯救了我的一天!感謝分享。 – 2010-11-04 18:34:12

+0

和我的!非常感謝。我離開DISABLED_SHARED_GEMS = 1 btw。 – artemave 2011-01-18 10:40:16

+1

在將配置選項添加到.bundle/config並重新運行'bundle install'之前,我的家中沒有.bundler目錄。在我做完之後,我找到了目錄,乘客能夠找到捆綁的寶石。 – davemyron 2011-01-26 08:38:24

68

林曾經有過這個問題,解決您在使用

bundle --deployment 

這將安裝在供應商的寶石/ bundle

+4

+1這也適用,而且更簡單。 – GarlicFries 2011-03-03 17:01:42

+1

這很好,謝謝。儘管如此,文檔聲稱它[不應該用於開發](http://gembundler.com/bundle_install.html),所以在開發機器上,您可以使用'bundle install --path vendor/bundle'來代替。 – 2011-12-06 11:43:13

+4

我不希望我的寶石在我的git倉庫中。 – 2012-02-17 20:55:02

8

您可以使用bundle install --path vendor/bundle在本地安裝寶石,而不是安裝到系統寶石中。

如果要使用系統的寶石,以保持,不過,這只是一條線在你的Apache配置,告訴乘客在哪裏可以找到你的系統的寶石:

SetEnv GEM_HOME /Users/bob/.bundle 

有一個在我的博客上一個稍微複雜的書面記錄Using Passenger with GEM_HOME set

+0

ven爲我使用乘客/ nginx無法使用我的寶石:( – Macario 2011-05-27 21:36:15

+1

我不希望我的寶石存放在我的git存儲庫中。 – 2012-02-17 20:55:19

4

我在編寫Sinatra應用程序時遇到了這個問題。爲了解決它,我添加了這條線到config.ru

require 'bundler/setup' 
+1

唉不行。 Phusion無法找到捆綁軟件gem :( – tekknolagi 2012-10-26 06:05:37

0

我有同樣的問題,這是由於與RVM的權利問題。

運行Web服務器的用戶無法檢查GIT gem是否可用。 作爲使用網絡用戶運行的「乘客」,它不能執行此檢查。

我找到的解決方案是網絡用戶添加到RVM組:

usermod -a -G rvm apache 

我希望這將幫助那些不希望有創業板部署到「供應商/束」其他一些人。