ЗмістНатисність на посилання, щоб перейти до потрібного місця
Під час встановлення 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 waitSearching 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 waitInstalling required packages: pkg-config - please waitCertificates bundle '/opt/homebrew/etc/[email protected]/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 waitruby-3.4.3 - #configuring - please waitruby-3.4.3 - #post-configuration - please waitruby-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 -j10file2lastrev.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.0Thread model: posixInstalledDir: /Library/Developer/CommandLineTools/usr/bincompiling ./main.ccompiling dmydln.ccompiling miniinit.ctranslating 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.
Цей допис поки що не має жодних доповнень від автора/ки.