How to install and use different versions of ruby?
Rise to the top 3% as a developer or hire one of them at Toptal: https://topt.al/25cXVn
--------------------------------------------------
Music by Eric Matyas
https://www.soundimage.org
Track title: Cosmic Puzzle
--
Chapters
00:00 How To Install And Use Different Versions Of Ruby?
00:31 Accepted Answer Score 48
02:06 Answer 2 Score 9
02:53 Answer 3 Score 1
03:21 Answer 4 Score 1
04:26 Thank you
--
Full question
https://superuser.com/questions/340490/h...
--
Content licensed under CC BY-SA
https://meta.stackexchange.com/help/lice...
--
Tags
#ruby #rails
#avk47
ACCEPTED ANSWER
Score 48
There are two major Ruby version managers out there from which you can choose:
rbenv
andruby-build
- RVM
These allow you to keep multiple versions of Ruby on the same system. Once you've installed a version manager, and installed your own Ruby version, you won't mess with your system's Ruby and its Gems, which is the greatest benefit. No more sudo
! No more permissions errors and Gem conflicts.
Which one should I choose?
Both do the same thing, but they follow different philosophies. The choice is up to you.
I personally recommend rbenv
for its simplicity. I've been using it for years and it has always worked well.
How do I install them?
If you choose rbenv
:
- Follow the all the installation and setup instructions.
- Install
ruby-build
- Run
rbenv install x.x.x
wherex.x.x
is the version (userbenv install --list
to see which ones are available - Run
rbenv global x.x.x
to change your global Ruby version
If you choose RVM:
- Use the secure installation method
- Read the installation instructions — you probably want the single-user configuration
- Use
rvm list known
to list available Rubies and then runrvm install x.x.x
to install a specific version. - Use
rvm use x.x.x --default
to change your default Ruby
ANSWER 2
Score 9
I think rbenv deserves at least its own answer.
There is a constant battle between fans of rbenv and those of RVM but I personally like rbenv a lot more. As the Sam Stephenson (the author) states, rbenv it solely concerned with switching Ruby versions (as opposed to RVM, which does a lot more).
On OS X, it's especially easy to give it a try. Just follow the excellent installation instructions on the Github page (if you have Homebrew installed, it's basically just a brew install rbenv ruby-build
).
As for switching Rails versions, I once wrote an article about that which my be of interest for you.
ANSWER 3
Score 1
Assuming you have installed the rbenv ruby version: run,
rbenv init
Then;
eval "$(rbenv init - zsh)"
To confirm the switched version, run;
which ruby
It should be something like;
/Users/MacbookAir/.rbenv/shims/ruby
ANSWER 4
Score 1
This is what worked for me, I don't have sudo:
#!/usr/bin/env bash
ruby -v
if ! command -v ruby &> /dev/null
then
echo "Going to try to install ruby (ideally 3.1.2)"
# - install rebenv (following ruby-build really is needed eventhough it doesn't look like it)
mkdir -p ~/.rbenv
cd ~/.rbenv
git clone https://github.com/rbenv/rbenv.git .
# if $HOME/.rbenv/bin not in path append it, otherwise don't change it
echo $PATH | tr ':' '\n' | awk '{print " " $0}';
if [[ ":$PATH:" != *":$HOME/.rbenv/bin:"* ]]; then
echo "might want to put $HOME/.rbenv/bin in your path"
export PATH="$HOME/.rbenv/bin:$PATH"
# echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc.lfs
fi
eval "$(rbenv init -)"
rbenv -v
# - install ruby-build, odd, this really is needed for ruby to install despite it not looking like ruby build is need at the bottom
mkdir -p ~/.ruby-build
cd ~/.ruby-build
git clone https://github.com/rbenv/ruby-build.git .
# if $HOME/.ruby-build/bin not in path append it, otherwise don't change it
echo $PATH | tr ':' '\n' | awk '{print " " $0}';
if [[ $PATH != *"$HOME/.ruby-build/bin"* ]]; then
echo "might want to put $HOME/.ruby-build/bin in your path"
export PATH="$HOME/.ruby-build/bin:$PATH"
# echo 'export PATH="$HOME/.ruby-build/bin:$PATH"' >> ~/.bashrc.lfs
fi
ruby-build --version
# - install ruby without sudo -- using rbenv
mkdir -p ~/.local
# ruby-build 3.1.2 ~/.local/
rbenv install 3.1.2
rbenv global 3.1.2
fi
ruby -v
# - wontfix: above worked but what was ruby's official way to do this? doesn't matter but answer might be here some day: https://discuss.rubyonrails.org/t/what-is-the-official-way-to-install-ruby-ideally-3-1-2-on-ubuntu/82226
# -old prover bot ignore doesn't work on SNAP
# Proverbot's way to install ruby
# # First, install Ruby, as that is for some reason required to build the "system" project
# git clone https://github.com/rbenv/ruby-build.git ~/ruby-build
# mkdir -p ~/.local
# PREFIX=~/.local ./ruby-build/install.sh
# ~/.local/ruby-build 3.1.2 ~/.local/
# ref: https://superuser.com/questions/340490/how-to-install-and-use-different-versions-of-ruby/1756372#1756372
see this for more general answers: https://askubuntu.com/questions/339/how-can-i-install-a-package-without-root-access