[英]Rails 3: Passenger can't find git gems installed by bundler
Rails 3.0.0,乘客2.2.15:
gem 'paperclip', :git => 'git://github.com/lmumar/paperclip.git', :branch => 'rails3'
,: gem 'paperclip', :git => 'git://github.com/lmumar/paperclip.git', :branch => 'rails3'
rails3 gem 'paperclip', :git => 'git://github.com/lmumar/paperclip.git', :branch => 'rails3'
到您的Gemfile bundle install
rails/script server
和訪問開始也可以 未檢出git://github.com/lmumar/paperclip.git(在rails3)。 請運行bundle install
(Bundler :: GitError)
我在.htaccess和config / * .rb中的各個地方嘗試過bundler pack
(沒有幫助)並將BUNDER_HOME設置為〜/ .bundler(Paperclip git通過bundler install
),但這不成功也是。
〜/ .bundler由與Rails項目相同的用戶擁有(Passenger在此用戶下運行),因此它不能是權限問題。 sudo是由bundle install
安裝並調用的。
任何提示?
我以前有這個問題,解決使用
bundle --deployment
這將在vendor / bundle中安裝gem
解決方案(花了我幾個小時):
確保RAILS_ROOT/.bundle/config
(SetEnv等對我不起作用)包含:
---
BUNDLE_PATH: /home/xxxxx/.bundler
注意BUNDLE_PATH,而不是BUNDLER_PATH! 還有一個DISABLED_SHARED_GEMS = 1條目,我刪除了它。
然后,即使從Passenger加載,bundler也會識別正確的路徑。 沒有乘客,它總是工作(並使用/home/xxxxx/.bundler,如問題中所述)
您可以使用bundle install --path vendor/bundle
在本地安裝gem,而不是在系統gem中安裝。
但是,如果您想繼續使用系統寶石,那么Apache配置中只有一行可以告訴Passenger在哪里可以找到您的系統寶石:
SetEnv GEM_HOME /Users/bob/.bundle
在使用GEM_HOME設置的Using Passenger時,我的博客上有一篇更精細的文章
我在編寫Sinatra應用程序時遇到了這個問題。 為了解決這個問題,我將這一行添加到了config.ru中 。
require 'bundler/setup'
我有同樣的問題,這是由於RVM的權利問題。
運行Web服務器的用戶無法檢查GIT gem是否可用。 作為使用Web用戶運行的“Passenger”,它無法進行此檢查。
我找到的解決方案是將網絡用戶添加到rvm組:
usermod -a -G rvm apache
我希望這將有助於其他一些不希望將GEM部署到“供應商/捆綁”中的人。
我安裝了乘客gem及其apache模塊作為sudo用戶,這就是我的問題。
我最初使用sudo的原因是我從railscasts的第122集復制了代碼。在沒有sodu訪問的情況下安裝它解決了這個問題。 由於Ruby是使用rvm安裝的,而我的系統上沒有sudo訪問權限。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.