deploying rails3 apps with bundler and phusion pas

2019-01-22 15:58发布

问题:

i am trying to deploy rails3 apps with the latest phusion passenger 2.2.11 and ruby-enterprise-1.8.7-2010.01. i am using bundler, but passenger seems to not be able to find the .bundle dir.

error message:

git://github.com/rails/rails.git (at master) is not checked out. Please run `bundle install` (Bundler::PathError)

where do i install the .bundle? where do i tell passenger which bundle to use? any hints?

thanks!

回答1:

i think the command you are searching for is

bundle pack

which will move your gems from the .bundle directory to the vendor/cache.

see yehuda katz' posting about bundler workflows on his site: http://yehudakatz.com/2010/02/09/using-bundler-in-real-life/

more information on the bundler directory: you can add in you application.rb file the following line, which will change the bundler dir for phusion passenger:

ENV['BUNDLER_HOME']="/home/or-wherever-you-want-to-point-it"


回答2:

You shouldn't need to "pack" your gems.

I've spent a week trying everything. Following ALL of the troubleshooting steps here finally resolved it:

https://github.com/carlhuda/bundler/blob/master/ISSUES.md

Good luck!



回答3:

Been fighting this one also. I've found that doing a

bundle --deployment

does the trick. See the post here: Rails 3: Passenger can't find git gems installed by bundler

Seems a bit hacky to me however. Would like to know if this is an issue with Passenger or bundler? Is it version specific, etc...



回答4:

This gem bundler site said that for deployment you may use:

bundle install --deployment


回答5:

try

bundle install vendor/bundler


回答6:

What did helped me exactly on: 1. CentOS 6.x 64bit 2. Bitnami stack bundle with spree 1.3.1

cd SPREE_APP_ROOT_AKA_RAILS_ROOT
/opt/spree-1.3.1-0/ruby/bin/bundle install

As a result gem appeared in the root. But it's not good. It should go to vendor/cache and other underlying folders.

The I run:

/opt/spree-1.3.1-0/ruby/bin/bundle package --all 

Option --all is for packaging "git" gems.

Restart passenger and go on:)