4

I'm getting an error while trying to install 2.3 ruby on osx I've updated rvm to stable 1.27.0

then I'm trying to install 2.3

% rvm install 2.3
ruby-2.3.0 - #removing src/ruby-2.3.0 - please wait
Searching for binary rubies, this might take some time.
No binary rubies available for: osx/10.11/x86_64/ruby-2.3.0.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
Checking requirements for osx.
Certificates in '/usr/local/etc/openssl/cert.pem' are already up to date.
Requirements installation successful.
Installing Ruby from source to: /Users/password123/.rvm/rubies/ruby-2.3.0, this may take a while depending on your cpu(s)...
ruby-2.3.0 - #downloading ruby-2.3.0, this may take a while depending on your connection...
ruby-2.3.0 - #extracting ruby-2.3.0 to /Users/password123/.rvm/src/ruby-2.3.0 - please wait
ruby-2.3.0 - #configuring - please wait
ruby-2.3.0 - #post-configuration - please wait
ruby-2.3.0 - #compiling - please wait
Error running '__rvm_make -j 1',
showing last 15 lines of /Users/password123/.rvm/log/1460728216_ruby-2.3.0/make.log
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ossl_ssl.c:18:35: note: expanded from macro 'numberof'
#define numberof(ary) (int)(sizeof(ary)/sizeof((ary)[0]))
                                  ^~~~~
ossl_ssl.c:2266:21: error: invalid application of 'sizeof' to an incomplete type 'const struct (anonymous struct at ossl_ssl.c:85:14) []'
    for (i = 0; i < numberof(ossl_ssl_method_tab); i++) {
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ossl_ssl.c:18:35: note: expanded from macro 'numberof'
#define numberof(ary) (int)(sizeof(ary)/sizeof((ary)[0]))
                                  ^~~~~
4 warnings and 10 errors generated.
make[2]: *** [ossl_ssl.o] Error 1
make[1]: *** [ext/openssl/all] Error 2
make: *** [build-ext] Error 2
+__rvm_make:0> return 2
There has been an error while running make. Halting the installation.  

Could you advise me any steps to fix this error ?

Elmor
  • 4,775
  • 6
  • 38
  • 70

5 Answers5

9

Based on this rbenv discussion, I was able to work around this by uninstalling, reinstalling, and force-linking Homebrew OpenSSL:

brew uninstall --force openssl
brew install openssl
brew link --overwrite openssl --force
rvm install 2.3.0

I'd feel better if I knew what side effects the brew link might have, but it worked.

David Moles
  • 48,006
  • 27
  • 136
  • 235
4

It worked for me:

Restart osx, then

brew uninstall openssl
brew unlink openssl098
brew install openssl
brew link --overwrite --force openssl
rvm install 2.3.0 # (or rvm install 2.3.1)

Based on https://github.com/rvm/rvm/issues/3656

blackchestnut
  • 1,259
  • 10
  • 15
  • Help, me again. NOTE: You can ignore warning (brew link --overwrite --force openssl): Warning: Refusing to link: openssl Linking keg-only openssl means you may end up linking against the insecure, deprecated system OpenSSL while using the headers from Homebrew's openssl. Instead, pass the full include/library paths to your compiler e.g.: -I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib – blackchestnut Jan 08 '17 at 08:48
1

Still getting the same error after running the lines mentionned, Finally I solved my problem by updating hombrew, then uninstall and install openssl, then rvm install ruby 2.3 again

sim
  • 21
  • 2
0

There are issues installing ruby <=2.3.0 compatibility with Openssl@1.1.

This worked for me

rvm install 2.3.0 --with-openssl-lib=/opt/local/lib/openssl --with-openssl-include=/opt/local/include/openssl
imsinu9
  • 760
  • 7
  • 12
0

OpenSSL 1.1 isn’t compatible with Ruby 2.3.x checkout this issue here

I solved the issue on mac by using following command.

rvm reinstall ruby-2.3.8 --with-openssl-dir=`brew --prefix openssl@1.0` --debug

If you want more insights on the issue you can refer to this article https://mentalized.net/journal/2019/09/13/ruby-2-3-rvm-and-openssl-1-0/

Vishal Jain
  • 446
  • 3
  • 7