I was using default Ruby version (2.5.1) which comes by default on Ubuntu 18.04, and I did not need to run multiple version of Ruby — or latest one.
Today, I needed to work with Ruby 2.6.3 on Project Mağara.
Is this your first time with Ruby?
Well, I need to say that I really do not remember the dependencies of Ruby on Ubuntu, so I did quick search on the Internet.
sudo apt install libssl-dev libreadline-dev zlib1g-dev autoconf bison \ build-essential libyaml-dev libreadline-dev libncurses5-dev libffi-dev \ libgdbm-dev
Remove everything about previous Ruby
I was using default Ruby, so I need to delete before take an action
sudo rm -rf /usr/bin/bundle* sudo rm -rf /usr/lib/ruby sudo apt remove ruby*
Before get start, please reboot your system; otherwise, you can get unexpected
errors, which I got some of them, for example when rbenv tries to build
eventmachine, you’ll get an error.
rbenv-installer because who wants manual way when they have automated
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-installer | bash
I installed the rbenv, but it complains about something doctor. After that I
go to bottom of the
.bashrc with Vim editor
PATH variable and save when you exit
export PATH="$PATH:$HOME/.rbenv/bin" eval "$(rbenv init -)"
Close the terminal and open new one. I was excited, and I want to download 2.6.3, and I did with
rbenv install 2.6.3
However, I got an error about missing libraries
berkhan:~$ rbenv install 2.6.3 Downloading ruby-2.6.3.tar.bz2... -> https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.3.tar.bz2 Installing ruby-2.6.3... BUILD FAILED (Ubuntu 18.04 using ruby-build 20190423) Inspect or clean up the working tree at /tmp/ruby-build.20190424185613.10421 Results logged to /tmp/ruby-build.20190424185613.10421.log Last 10 log lines: installing capi-docs: /home/berkhan/.rbenv/versions/2.6.3/share/doc/ruby The Ruby openssl extension was not compiled. The Ruby readline extension was not compiled. ERROR: Ruby install aborted due to missing extensions Try running `apt-get install -y libssl-dev libreadline-dev` to fetch missing dependencies. Configure options used: --prefix=/home/berkhan/.rbenv/versions/2.6.3 LDFLAGS=-L/home/berkhan/.rbenv/versions/2.6.3/lib CPPFLAGS=-I/home/berkhan/.rbenv/versions/2.6.3/include
and, I go back and run what rbenv says
sudo apt install -y libssl-dev libreadline-dev
I think we can run it again, right?
rbenv install 2.6.3
berkhan:~$ rbenv install 2.6.3 Installing ruby-2.6.3... Installed ruby-2.6.3 to /home/berkhan/.rbenv/versions/2.6.3 berkhan:~$ ruby --version ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]
I use Bundler 2.x and rbenv brings 1.x, so UPDATE TIME!
berkhan:~$ gem update ... berkhan:~$ bundler --version Bundler version 2.0.1
Be careful about which version of bundler bundled your Gemfile.lock. If the
lock file bundled with 1.x, you will see 1.x with