Rails 3.0.0,Passenger 2.2.15:
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)
我已尝试bundler pack
(没有帮助)并在.htaccess和config / *中的各个位置设置BUNDER_HOME到〜/ .bundler(由bundler install
安装Paperclip git) .rb,但这也不成功。
〜/ .bundler由与Rails项目相同的用户拥有(Passenger在此用户下运行),因此它不能是权限问题。 sudo由bundle install
安装并调用。
任何提示?
答案 0 :(得分:70)
我以前遇到过这个问题,请使用
解决bundle --deployment
将在vendor / bundle
中安装gem答案 1 :(得分:22)
解决方案(花了我几个小时):
确保RAILS_ROOT/.bundle/config
(SetEnv等对我不起作用)包含:
---
BUNDLE_PATH: /home/xxxxx/.bundler
注意BUNDLE_PATH,而不是BUNDLER_PATH!还有一个DISABLED_SHARED_GEMS = 1条目,我删除了它。
然后,即使从Passenger加载,bundler也会识别正确的路径。没有乘客,它总是有效(并使用/home/xxxxx/.bundler,如问题所述)
答案 2 :(得分:8)
您可以使用bundle install --path vendor/bundle
在本地安装宝石,而不是系统宝石。
如果你想继续使用系统宝石,那么你只需要在Apache配置中使用一行来告诉Passenger在哪里找到你的系统宝石:
SetEnv GEM_HOME /Users/bob/.bundle
上有一篇更精细的文章
答案 3 :(得分:4)
我在编写Sinatra应用程序时遇到了这个问题。要解决这个问题,我将此行添加到 config.ru 。
require 'bundler/setup'
答案 4 :(得分:0)
我遇到了同样的问题,这是由于RVM的权利问题。
运行Web服务器的用户无法检查GIT gem是否可用。 作为使用Web用户运行的“Passenger”,它无法进行此检查。
我找到的解决方案是将网络用户添加到rvm组:
usermod -a -G rvm apache
我希望这会帮助其他一些不希望将GEM部署到“供应商/捆绑”中的人。
答案 5 :(得分:0)
我以sudo用户身份安装了乘客gem及其apache模块,这就是我的问题。
最初使用sudo的原因是我从railscasts的第122集中复制了代码。在没有sodu访问权限的情况下安装它可以解决此问题。由于Ruby是使用rvm安装的,因此在我的系统上没有sudo访问权限。