Rails is not using my global Ruby version
You didn't tell how you installed rbenv
, but I think it is per-user installation (which is default). In this case you should install gems without using sudo
. When you did sudo gem install rails
, it was installed in system ruby, not rbenv's selected one.
Solution - install rails without sudo:
rbenv global 2.1.0
gem install rails
rbenv rehash
Rbenv not using the correct version
Try with this.
In your rails project folder check the presence of .ruby-version
file and put inside the same ruby version specified into Gemfile.
(if this file is not present, create it.)
~/your-rails-project/.ruby-version file:
2.5.3
~/your-rails-project/Gemfile file:
source 'https://rubygems.org'
ruby '2.5.3'
...
Then install that version with rbenv:
$ rbenv install 2.5.3
$ rbenv rehash
$ rbenv local 2.5.3
$ rbenv global 2.5.3
Now check that you are using the right version with:
$ ruby -v
rbenv not changing ruby version
Check that PATH contains $HOME/.rbenv/shims
and $HOME/.rbenv/bin
$ env | grep PATH
Also check that you have the following in your ~/.bash_profile if using bash or ~/.zshenv if using zsh
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
NOTE:
Make sure it's the last setting in your ~/.bash_profile . I ran into an issue where I installed a program that updated my .bash_profile and reset PATH.
Finally, make sure your $HOME
folder doesn't have a .ruby-version
file that you may have created by accident if you were to have done $ rbenv local <ruby-version>
in your $HOME
folder. Doing $ rbenv global <ruby-version>
modifies the $HOME/.rbenv/version
file, and the existence of a .ruby-version
file in the $HOME
folder would override the version set by $HOME/.rbenv/version
.
From the docs:
Choosing the Ruby Version
When you execute a shim, rbenv determines which Ruby version to use by reading it from the following sources, in this order:
The RBENV_VERSION environment variable, if specified. You can use the rbenv shell command to set this environment variable in your current shell session.
The first .ruby-version file found by searching the directory of the script you are executing and each of its parent directories until reaching the root of your filesystem.
The first .ruby-version file found by searching the current working directory and each of its parent directories until reaching the root of your filesystem. You can modify the .ruby-version file in the current working directory with the rbenv local command.
The global ~/.rbenv/version file. You can modify this file using the rbenv global command. If the global version file is not present, rbenv assumes you want to use the "system" Ruby—i.e. whatever version would be run if rbenv weren't in your path.
Related Topics
Rmagick Error After Installing Os X Mavericks
Ruby or Rails Sort on Two/Multiple Date Fields
Rails 3 and PDFkit. How to Specify Page Size
Is There a Groovy Equivalent of the Ruby Timeout Module
Activerecord_Postgis_Adapter: Undefined Method 'Point' for Nil:Nilclass
Rails 7 Signup Form Doesn't Show Error Messages
Ruby on Rails - $ Rails Server Fails Because Uglifier Gem Could Not Be Found
How to Make a Ruby Script Using Trollop for Command Line Parsing
Error Creating Rails Db Using Rake Db:Create
Rails - Multi Tenant Application with Customization Framework
Having Difficulty Accessing Validation Errors in Sinatra
Rails 4 Error with Every Command "'Load': No Implicit Conversion of Nil into String" (MAC Os X 10.9)
How Does Count Method Works in Ruby
Cron Is Running in Home Directory Instead of File Directory
Shortening Socket Timeout Using Timeout::Timeout(N) Does Not Seem to Work for Me
Advice on How to Validate Names and Surnames Using Regex