Skip to content

Unable to install any Ruby versions after updating to macOS 12.6 on Apple Silicon #430

@monfresh

Description

@monfresh

I updated to macOS 12.6 on 3 of my Macs: 2 of them Intel, and one of them Apple Silicon (M1 MacBook Air, 2020).

I am able to install Ruby 2.7.6 and 3.1.2 with ruby-install on the Intel machines, but I can't anymore on the M1 Air. It fails with ld: symbol(s) not found for architecture arm64. Here is an excerpt from the end:

linking shared-object -test-/arith_seq/extract.bundle
Undefined symbols for architecture arm64:
  "_rb_arithmetic_sequence_extract", referenced from:
      _arith_seq_s_extract in extract.o
  "_rb_ary_new_capa", referenced from:
      _arith_seq_s_extract in extract.o
  "_rb_ary_store", referenced from:
      _arith_seq_s_extract in extract.o
  "_rb_define_singleton_method", referenced from:
      _Init_extract in extract.o
  "_rb_path2class", referenced from:
      _Init_extract in extract.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [../../../../.ext/arm64-darwin21/-test-/arith_seq/extract.bundle] Error 1
make[1]: *** [ext/-test-/arith_seq/extract/all] Error 2
make: *** [build-ext] Error 2
!!! Compiling ruby 3.1.2 failed!

I've also attached the full log.

So then I tried compiling Ruby manually, and it failed after the first make with the same error:

brew install wget
cd ~/src
wget https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.2.tar.xz
tar -xzvf ruby-3.1.2.tar.xz
cd ruby-3.1.2
./configure --with-opt-dir="$(brew --prefix openssl@1.1):$(brew --prefix readline):$(brew --prefix libyaml):$(brew --prefix gdbm)"
make

I even reset my entire dev setup (uninstalled Homebrew, removed the command line tools, removed all Ruby-related folders, etc.), and reinstalled everything from scratch.

So then I tried rbenv, and it worked just fine. Any ideas what rbenv/ruby-build might be doing differently?

Could it be something with the ./configure options?

So then I tried installing 2.6.10 on my Intel machines, and it failed on my iMac with ruby-install, but it worked with rbenv. However, it failed with rbenv on Apple Silicon. To make things more confusing, it worked on my Intel MacBook Air with both ruby-install and rbenv! The difference is that the iMac used to be on macOS 12.5.1, and the Intel Air was upgraded to Monterey from Big Sur.

I know this used to work before, so something must have changed with macOS 12.6.

Interestingly, 2.6.9 works on the Intel iMac (the one where 2.6.10 failed) with ruby-install.

Any ideas?

ruby-install-failure.txt

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions