Search code examples
rubyrubygemsbundlervmbundler

How do I force "bundle install" to use the installed version of Ruby?


I just re-installed Ruby 2.4.0 ...

myuser@myproject:~$ sudo env "PATH=$PATH" rvm reinstall ruby-2.4.0
ruby-2.4.0 - #removing rubies/ruby-2.4.0..
Searching for binary rubies, this might take some time.
Found remote file https://rubies.travis-ci.org/ubuntu/14.04/x86_64/ruby-2.4.0.tar.bz2
Checking requirements for ubuntu.
Requirements installation successful.
ruby-2.4.0 - #configure
ruby-2.4.0 - #download
ruby-2.4.0 - #validate archive
ruby-2.4.0 - #extract
ruby-2.4.0 - #validate binary
ruby-2.4.0 - #setup
ruby-2.4.0 - #gemset created /usr/local/rvm/gems/ruby-2.4.0@global
ruby-2.4.0 - #importing gemset /usr/local/rvm/gemsets/global.gems...................................
ruby-2.4.0 - #generating global wrappers........
ruby-2.4.0 - #gemset created /usr/local/rvm/gems/ruby-2.4.0
ruby-2.4.0 - #importing gemsetfile /usr/local/rvm/gemsets/default.gems evaluated to empty gem list
ruby-2.4.0 - #generating default wrappers........
Making gemset ruby-2.4.0 pristine.................................................................
Making gemset ruby-2.4.0@global pristine.................................................................

However, despite the fact I'm seeing the right version returned by "ruby -v", my "bundle install" seems to be pointed at an older version of Ruby ...

rails@myproject:~$ ruby -v
ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-linux]
rails@myproject:~$ cd myproject
rails@myproject:~/myproject$ bundle install
-su: /usr/local/rvm/gems/ruby-2.4.0/bin/bundle: /usr/bin/ruby1.9.1: bad interpreter: No such file or directory

HOw do I force bundle to point at the right version of Ruby?


Solution

  • Bundle fails because you don't have installed bundler in the 2.4.0 rvm gemset. To fix that, you should do this in your current version of ruby:

    gem install bundler
    bundle
    

    Make sure that your Ruby version is the same as declared on Gemfile.