Rails 3:Passenger找不到捆绑器安装的git gems
Rails 3.0.0,乘客2.2.15:
- 创build一个新的Rails项目
- 将
gem 'paperclip', :git => 'git://github.com/lmumar/paperclip.git', :branch => 'rails3'
rails3gem '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
(并没有帮助),并设置BUNDER_HOME到〜/ .bundler(Paperclip git安装在那里通过bundler install
)在.htaccess和config / *。rb中的各个地方,但这不成功也是。
〜/ .bundler和Rails项目(Passenger在这个用户下运行)拥有相同的用户,所以它不能成为一个权限问题。 sudo被安装并被bundle install
调用。
任何提示?
我曾经有这个问题,解决使用
bundle --deployment
其中将安装在供应商/捆绑的gem
解决scheme(花了我几个小时):
马雷确定RAILS_ROOT/.bundle/config
(SetEnv等不适合我)包含:
--- BUNDLE_PATH: /home/xxxxx/.bundler
注意BUNDLE_PATH,而不是BUNDLER_PATH! 还有一个DISABLED_SHARED_GEMS = 1条目,我删除它。
然后,捆绑商即使从Passenger加载也能识别正确的path。 没有乘客,它总是工作(并使用/home/xxxxx/.bundler,如问题中所述)
您可以使用bundle install --path vendor/bundle
来在本地安装gems,而不是安装到系统gem中。
但是,如果您想继续使用系统gem,那么您的Apacheconfiguration中只有一行告诉Passenger在哪里find您的系统gem:
SetEnv GEM_HOME /Users/bob/.bundle
在使用GEM_HOME集合的使用Passenger上,我的博客上有一个更详细的写法
我在编写Sinatra应用程序时遇到了这个问题。 为了解决这个问题,我把这行添加到config.ru 。
require 'bundler/setup'
我有同样的问题,这是由于与RVM的权利问题。
运行Web服务器的用户无法检查GIT是否可用。 作为使用networking用户运行的“乘客”,它不能做这个检查。
我find的解决scheme是将networking用户添加到rvm组:
usermod -a -G rvm apache
我希望这会帮助一些不想将创业板部署到“供应商/捆绑”的人。