Фікс проблеми встановлення Ruby 3.4.3 (і не тільки) через RVM на macOS (Apple Silicon)

Обкладинка допису: Фікс проблеми встановлення Ruby 3.4.3 (і не тільки) через RVM на macOS (Apple Silicon)
Під час встановлення Ruby 3.4.3 через RVM на macOS (ARM / Apple Silicon) можна зіткнутися з помилкою:
rvm install "ruby-3.4.3"
ruby-3.4.3 - #removing src/ruby-3.4.3 - please wait
Searching for binary rubies, this might take some time.
No binary rubies available for: osx/26.2/arm64/ruby-3.4.3.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
Checking requirements for osx.
Installing requirements for osx.
Updating system - please wait
Installing required packages: pkg-config - please wait
Certificates bundle '/opt/homebrew/etc/openssl@1.1/cert.pem' is already up to date.
Requirements installation successful.
Installing Ruby from source to: /Users/username/.rvm/rubies/ruby-3.4.3, this may take a while depending on your cpu(s)...
ruby-3.4.3 - #downloading ruby-3.4.3, this may take a while depending on your connection...
ruby-3.4.3 - #extracting ruby-3.4.3 to /Users/username/.rvm/src/ruby-3.4.3 - please wait
ruby-3.4.3 - #configuring - please wait
ruby-3.4.3 - #post-configuration - please wait
ruby-3.4.3 - #compiling - please wait
Error running '__rvm_make -j10',
please read /Users/username/.rvm/log/1767089315_ruby-3.4.3/make.log
There has been an error while running make. Halting the installation.
Логи з make будуть виглядати так:
+__rvm_make:0> make -j10
file2lastrev.rb: does not seem to be under a vcs: .
        BASERUBY = /Users/username/.rvm/rubies/ruby-3.4.4/bin/ruby --disable=gems
        CC = gcc
        LD = ld
        LDSHARED = gcc -dynamiclib
        CFLAGS = -O3 -I/opt/homebrew/opt/libyaml/include -I/opt/homebrew/opt/libksba/include -I/opt/homebrew/opt/readli$
        XCFLAGS = -fno-strict-overflow -fvisibility=hidden -fexcess-precision=standard -DRUBY_EXPORT -I. -I.ext/include$
        CPPFLAGS = -I/opt/homebrew/opt/node@22/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D$
        DLDFLAGS = -L/opt/homebrew/opt/libyaml/lib -L/opt/homebrew/opt/libksba/lib -L/opt/homebrew/opt/readline/lib -L/$
        SOLIBS = -ldl -lobjc -lpthread
        LANG = C.UTF-8
        LC_ALL =
        LC_CTYPE = UTF-8
        MFLAGS = - --jobserver-fds=3,4 -j
        RUSTC = no
        YJIT_RUSTC_ARGS = --crate-name=yjit --crate-type=staticlib --edition=2021 -g -C lto=thin -C opt-level=3 -C over$
Apple clang version 17.0.0 (clang-1700.6.3.2)
Target: arm64-apple-darwin25.2.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
compiling ./main.c
compiling dmydln.c
compiling miniinit.c
translating probes probes.d
RVM не знаходить готового бінарного білду для цієї версії ОС і намагається зібрати Ruby з source, але компіляція падає.

Причина

Ruby 3.4.x вимагає OpenSSL 3, але за замовчуванням RVM:
  • або підтягує OpenSSL 1.1
  • або не передає шлях до OpenSSL взагалі
Через це make завершується з помилкою.

Рішення

Потрібно явно вказати шлях до OpenSSL 3, встановленого через Homebrew.
Переконайтесь, що OpenSSL 3 встановлений:
brew install openssl@3
Встановіть Ruby з явним параметром:
rvm install ruby-3.4.3 --with-openssl-dir=$(brew --prefix)/opt/openssl@3
Після цього Ruby успішно:
  • скомпілюється
  • встановиться
  • створить gemset-и
  • стане доступним для використання 

Корисно знати

  • Повідомлення No binary rubies available - не помилка, а лише означає, що RVM перейшов у режим збірки з source
  • Ruby 3.4.x на macOS ARM наразі часто потребує ручної конфігурації
  • Аналогічна проблема може виникати і з іншими менеджерами версій
Якщо Ruby 3.4.x не ставиться через RVM на macOS - майже завжди допомагає явне підключення openssl@3.
Цейво!Відреагуй!
🧵

Цей допис поки що не має жодних доповнень від автора/ки.

Thundering Herd Problem: що це таке і чому він ламає продакшен
15 січ. '26, 10:14

Thundering Herd Problem: що це таке і чому він ламає продакшен

Нотатки про Ruby та RoR
Що таке Exponential Backoff і Random Jitter?
15 січ. '26, 15:24

Що таке Exponential Backoff і Random Jitter?

Нотатки про Ruby та RoR
Що таке B-Tree (Balanced Tree)?
22 лист. '25, 12:58

Що таке B-Tree (Balanced Tree)?

Нотатки про Ruby та RoR
22 лист. '25, 12:49

Що таке VACUUM у PostgreSQL?

Нотатки про Ruby та RoR
Що таке time-series база даних?
22 лист. '25, 12:42

Що таке time-series база даних?

Нотатки про Ruby та RoR
Що таке Elasticsearch і як він працює?
22 лист. '25, 12:35

Що таке Elasticsearch і як він працює?

Нотатки про Ruby та RoR
Що таке Vanilla Rails approach?
14 лист. '25, 16:48

Що таке Vanilla Rails approach?

Нотатки про Ruby та RoR
Що таке Middleware у Ruby on Rails і коли воно використовується
4 лист. '25, 10:39

Що таке Middleware у Ruby on Rails і коли воно використовується

Нотатки про Ruby та RoR
Підключення сервісу Elasticsearch до Rails-додатку (Coolify у хмарі, сервер на Hetzner).
15 лют. '26, 13:45

Підключення сервісу Elasticsearch до Rails-додатку (Coolify у хмарі, сервер на Hetzner).

Нотатки про Ruby та RoR
 "No space left on device" - коли Docker з'їв весь диск
15 лют. '26, 19:57

"No space left on device" - коли Docker з'їв весь диск

Нотатки про Ruby та RoR
15 лют. '26, 20:03

Sidekiq 7.3.x та connection_pool 3.0 - несумісність, яка ламає воркери

Нотатки про Ruby та RoR
11 бер. '26, 15:50

Помилка Bundler::HTTPError Could not fetch specs from https://rails-assets.org/

Нотатки про Ruby та RoR