Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Q&A

Post History

77%
+5 −0
Q&A 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 ...

1 answer  ·  posted 2y ago by Monica Cellio‭  ·  edited 2y ago by Monica Cellio‭

#3: Post edited by user avatar Monica Cellio‭ · 2022-05-15T19:52:11Z (almost 2 years ago)
I've replaced homebrew as advised, and also took some OS updates since asking. Error has changed but RVM still fails to compile the code it downloaded.
  • Installing Ruby on MacOS 11.6 produces compilation errors in the downloaded source; how do I fix?
  • 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](https://rvm.io/) or [rbenv](https://github.com/rbenv/rbenv#installation). 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 11.6 (Big Sur). 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, where I found this error:
  • compiling date_core.c
  • compiling digest.c
  • readline.c:1905:37: error: use of undeclared identifier 'username_completion_function'; did you mean 'rl_username_completion_function'?
  • rl_username_completion_function);
  • ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • rl_username_completion_function
  • readline.c:79:42: note: expanded from macro 'rl_username_completion_function'
  • # define rl_username_completion_function username_completion_function
  • ^
  • /usr/local/opt/readline/include/readline/readline.h:485:14: note: 'rl_username_completion_function' declared here
  • extern char *rl_username_completion_function PARAMS((const char *, int));
  • ^
  • 1 error generated.
  • make[2]: *** [readline.o] Error 1
  • make[1]: *** [ext/readline/all] Error 2
  • 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?
  • 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?
  • A project I want to work on requires Ruby. I was directed to [RVM](https://rvm.io/) or [rbenv](https://github.com/rbenv/rbenv#installation). 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: Post edited by user avatar Monica Cellio‭ · 2021-11-24T15:53:49Z (over 2 years ago)
Per comments, MacOS is on-topic so I don't need this preface any more.
  • (If MacOS is not sufficiently Linux-y for this community, please let me know and I'll ask this elsewhere.)
  • A project I want to work on requires Ruby. I was directed to [RVM](https://rvm.io/) or [rbenv](https://github.com/rbenv/rbenv#installation). 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 11.6 (Big Sur). 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, where I found this error:
  • compiling date_core.c
  • compiling digest.c
  • readline.c:1905:37: error: use of undeclared identifier 'username_completion_function'; did you mean 'rl_username_completion_function'?
  • rl_username_completion_function);
  • ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • rl_username_completion_function
  • readline.c:79:42: note: expanded from macro 'rl_username_completion_function'
  • # define rl_username_completion_function username_completion_function
  • ^
  • /usr/local/opt/readline/include/readline/readline.h:485:14: note: 'rl_username_completion_function' declared here
  • extern char *rl_username_completion_function PARAMS((const char *, int));
  • ^
  • 1 error generated.
  • make[2]: *** [readline.o] Error 1
  • make[1]: *** [ext/readline/all] Error 2
  • 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?
  • 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?
  • A project I want to work on requires Ruby. I was directed to [RVM](https://rvm.io/) or [rbenv](https://github.com/rbenv/rbenv#installation). 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 11.6 (Big Sur). 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, where I found this error:
  • compiling date_core.c
  • compiling digest.c
  • readline.c:1905:37: error: use of undeclared identifier 'username_completion_function'; did you mean 'rl_username_completion_function'?
  • rl_username_completion_function);
  • ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • rl_username_completion_function
  • readline.c:79:42: note: expanded from macro 'rl_username_completion_function'
  • # define rl_username_completion_function username_completion_function
  • ^
  • /usr/local/opt/readline/include/readline/readline.h:485:14: note: 'rl_username_completion_function' declared here
  • extern char *rl_username_completion_function PARAMS((const char *, int));
  • ^
  • 1 error generated.
  • make[2]: *** [readline.o] Error 1
  • make[1]: *** [ext/readline/all] Error 2
  • 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?
  • 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?
#1: Initial revision by user avatar Monica Cellio‭ · 2021-11-23T22:59:16Z (over 2 years ago)
Installing Ruby on MacOS 11.6 produces compilation errors in the downloaded source; how do I fix?
(If MacOS is not sufficiently Linux-y for this community, please let me know and I'll ask this elsewhere.)

A project I want to work on requires Ruby.  I was directed to [RVM](https://rvm.io/) or [rbenv](https://github.com/rbenv/rbenv#installation).  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 11.6 (Big Sur).  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, where I found this error:

    compiling date_core.c
    compiling digest.c
    readline.c:1905:37: error: use of undeclared identifier 'username_completion_function'; did you mean 'rl_username_completion_function'?
                                        rl_username_completion_function);
                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                        rl_username_completion_function
    readline.c:79:42: note: expanded from macro 'rl_username_completion_function'
    # define rl_username_completion_function username_completion_function
                                         ^
    /usr/local/opt/readline/include/readline/readline.h:485:14: note: 'rl_username_completion_function' declared here
    extern char *rl_username_completion_function PARAMS((const char *, int));
                 ^
    1 error generated.
    make[2]: *** [readline.o] Error 1
    make[1]: *** [ext/readline/all] Error 2

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?

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?