Saturday, March 14, 2020

Why Can't I Install Rubies...

It seems installing Rubies has become more of a chore as of late. I mean, why can't I Cut Rubies with ease! like it's advertised on rvm.io?

A wider search on this subject turns up other Ruby installers, such as rbenv, also have the same problem. However, I have found a workaround that seems to work. This discovery is not my original work, but I combed through various articles and forums to come up with it.

Using RVM as an example, let's install Ruby 2.6.5:

$ rvm install 2.6.5
Searching for binary rubies, this might take some time.
No binary rubies available for: osx/10.15/x86_64/ruby-2.6.5.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
Checking requirements for osx.
Certificates bundle '/opt/local/etc/openssl/cert.pem' is already up to date.
Requirements installation successful.
Installing Ruby from source to: /Users/salty/.rvm/rubies/ruby-2.6.5, this may take a while depending on your cpu(s)...
ruby-2.6.5 - #downloading ruby-2.6.5, this may take a while depending on your connection...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 13.4M  100 13.4M    0     0  2766k      0  0:00:04  0:00:04 --:--:-- 3358k
ruby-2.6.5 - #extracting ruby-2.6.5 to /Users/salty/.rvm/src/ruby-2.6.5.....
ruby-2.6.5 - #configuring......................................................................
ruby-2.6.5 - #post-configuration.
ruby-2.6.5 - #compiling.....................................................................
ruby-2.6.5 - #installing...........
ruby-2.6.5 - #compiling............................
Error running '__rvm_make -j2'
...

The exact error message varies, but as far as I can tell, it always follows the pattern of failure at __rvm_make something. This means an internal call to make has failed. To remedy this, we need to essentially help RVM finish doing its thing by executing the following commands:

$ pushd ~/.rvm/src/ruby-2.6.5
$ make install
$ popd
$ rvm --create 2.6.5
$ rvm cleanup all

Voila! Now Ruby 2.6.5 has been installed.

$ rvm 2.6.5
Using /Users/salty/.rvm/gems/ruby-2.6.5
$ ruby --version
ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-darwin18]

No comments: