Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

No such file to load bundler error for Rails 3

I have a Rails 3 app ready for staging.

I haven't got a VPS host set up yet. As I was planning to have everything on shared host for the first few months.

Problem:

cd myapp bundle check result:

The Gemfile's dependencies are satisfied

Passenger error:

Error message:
    no such file to load -- bundler
Exception class:
    LoadError

Frustrating thing about shared hosts is that I have to add these lines on config.ru:

ENV['GEM_HOME'] = '/home/username/.gems'
ENV['GEM_PATH'] = '$GEM_HOME:/usr/lib/ruby/gems/1.8'

Still no luck. Same no such file to load bundler error appears.

Has anybody got this working? Rails 3, Debian, shared host (dreamhost)?

I could just go ahead and register on Slicehost/Fivebean but before I do, I'd like to know why that error is showing up.

Thanks.

like image 457
kgpdeveloper Avatar asked Apr 03 '10 07:04

kgpdeveloper


4 Answers

The solution is here http://rvm.beginrescueend.com/integration/passenger/. You need to point your HTTP server to passenger_ruby wrapper instead of bin/ruby.

E.g. for RVM & Apache it should be something like that:

PassengerRuby /Users/username/.rvm/bin/passenger_ruby
like image 72
hipertracker Avatar answered Oct 22 '22 03:10

hipertracker


Passenger doesn't read environment variables from config.ru until after it has loaded. Without your backtrace I can't be positive, but I suspect everything will work if you just run bundle lock. If you're still having trouble after that, there's a list of troubleshooting information at the bottom of the bundler README that I need to know exactly what's going on.

like image 32
indirect Avatar answered Oct 22 '22 04:10

indirect


Rails hosting on shared hosts is already a minefield, but throwing in Rails 3 in all its pre-release goodness including Bundler reinventing the rubygems workflow is a recipe for pulling your hair out.

I host a few Rails sites on Dreamhost, but only the versions they officially support, otherwise it's just not worth the time. You can get a VPS now for almost as cheap as Dreamhost, and you will save hours and hours of your own time.

If you're looking for an easy answer, I'd suggest voting up the following and crossing your fingers:

Rails 3 on dreamhost?

like image 40
gtd Avatar answered Oct 22 '22 03:10

gtd


For me, this turned out to be an issue with the passenger_ruby directive that passenger-install-nginx-module spits out at the end of installation. It was missing the gemset name in the path to the ruby.

This works: (the fix)

passenger_ruby /Users/dzello/.rvm/wrappers/ruby-1.9.2-p0@rails3/ruby;

This did not: (what passenger-install-nginx-module spits out)

passenger_ruby /Users/dzello/.rvm/rubies/ruby-1.9.2-p0/bin/ruby

Note the passenger_ruby line does not include the proper gem path - the @rails3 (rails3 is the gemset name) portion is missing, even though it got it right for passenger root.

like image 2
Josh Dzielak Avatar answered Oct 22 '22 03:10

Josh Dzielak