Comments on Installing Ruby on MacOS 12.2 (or 11.6) produces compilation errors in the downloaded source; how do I fix?
Post
Installing Ruby on MacOS 12.2 (or 11.6) produces compilation errors in the downloaded source; how do I fix?
A project I want to work on requires Ruby. I was directed to RVM or rbenv. I tried rbenv
first because it has Mac instructions, ran into failures, uninstalled it and installed RVM, and still ran into problems. I am not sure how to debug. Details:
I am on MacOS 12.2 (was 11.6 when I first asked this). I am using the terminal (bash command line). I'll jump to the problem with RVM because the developer I'm working with uses it.
I installed RVM using the following command (from their documentation):
\curl -sSL https://get.rvm.io | bash -s stable
That did not produce any error messages. This installation modified my .bash_profile, so I fired up a new shell. In it I used rvm list known
and confirmed that the list includes [ruby-]2.6[.6]
, the version my project needs. I then typed:
rvm install "ruby-2.6.6"
Which produced a compilation error (substituting USER for my actual user name in paths):
Checking requirements for osx.
Certificates bundle '/usr/local/etc/openssl@1.1/cert.pem' is already up to date.
Requirements installation successful.
Installing Ruby from source to: /Users/USER/.rvm/rubies/ruby-2.6.6, this may take a while depending on your cpu(s)...
ruby-2.6.6 - #downloading ruby-2.6.6, 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 7961k 0 0:00:01 0:00:01 --:--:-- 7957k
ruby-2.6.6 - #extracting ruby-2.6.6 to /Users/USER/.rvm/src/ruby-2.6.6.....
ruby-2.6.6 - #configuring......................................................|
ruby-2.6.6 - #post-configuration.
ruby-2.6.6 - #compiling...................................................
Error running '__rvm_make -j8',
please read /Users/USER/.rvm/log/1637706281_ruby-2.6.6/make.log
There has been an error while running make. Halting the installation.
I consulted the log file given at the end and found a puzzling error, which I included in an earlier version of this question (you can find it in the revision history). People suggested that I needed to reinstall homebrew
because I was now running on the M1 chip. I've done that and repeated the steps to install Ruby, and this time I get a different make error:
installing default libraries
closure.c:264:14: error: implicit declaration of function 'ffi_prep_closure' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
result = ffi_prep_closure(pcl, cif, callback, (void *)self);
^
6 warnings and 1 error generated.
make[2]: *** [closure.o] Error 1
My attempt to install using rbenv
ended with a very similar error, so switching from RVM to rbenv
won't solve my problem.
How can I remedy this problem? I'm wondering if these Ruby managers require something in my environment that I'm missing, despite the output saying that dependencies were checked. Maybe it's assuming a different compiler than whatever I have? I see the reference to C99 there but don't know what it might be expecting.
This error isn't coming from my code; it's coming from the Ruby source code that RVM downloaded and tried to build. I guess I could try debugging that code, if I knew anything about it, but that seems like the wrong approach. I'm trying to get the "official" Ruby 2.6.6 to run, not my locally-hacked Ruby 2.6.6.
I don't know Ruby or its environment; I'm hoping to learn as I work on this project. Because of that lack of experience, though, I don't know where to look next or how to debug this problem. How do I successfully install this version of Ruby?
2 comment threads