Repository navigation
Closed
Closed
Copy link
Labels
Description
Describe the bug, including details regarding any error messages, version, and platform.
When using red-arrow with rubygems-requirements-system on arm64 macOS, installing system requirements fails. There are at least a few ways to fix this so I'm filing an issue to discuss.
My Gemfile:
source "https://rubygems.org"
plugin "rubygems-requirements-system"
gem "activerecord-adbc-adapter"My error,
$ bundle
-- >8 --
Installing red-arrow 24.0.0 with native extensions
requirements: system: arrow-c-glib: install: Start
Retrieving notices: done
Channels:
- conda-forge
Platform: osx-arm64
Collecting package metadata (repodata.json): done
Solving environment: failed
PackagesNotFoundError: The following packages are not available from current channels:
- arrow-c-glib
Current channels:
- https://conda.anaconda.org/conda-forge
To search for alternate channels that may provide the conda package you're
looking for, navigate to
https://anaconda.org
and use the search bar at the top of the page.
requirements: system: arrow-c-glib: install: failed
requirements: system: arrow-c-glib: install: Failed.
requirements: system: Run the following command to install required system package: /opt/homebrew/Caskroom/miniforge/base/bin/conda install -c conda-forge -y arrow-c-glib
Gem::InstallError: pre-install hook at /Users/bryce/tmp/arrow-ruby/.bundle/plugin/gems/rubygems-requirements-system-0.1.7/plugins.rb:17 failed for red-arrow-24.0.0
/Users/bryce/.rubies/ruby-4.0.0/lib/ruby/4.0.0/rubygems/installer.rb:317:in 'block in Gem::Installer#run_pre_install_hooks'
/Users/bryce/.rubies/ruby-4.0.0/lib/ruby/4.0.0/rubygems/installer.rb:312:in 'Array#each'
/Users/bryce/.rubies/ruby-4.0.0/lib/ruby/4.0.0/rubygems/installer.rb:312:in 'Gem::Installer#run_pre_install_hooks'
/Users/bryce/.rubies/ruby-4.0.0/lib/ruby/4.0.0/bundler/rubygems_gem_installer.rb:14:in 'Bundler::RubyGemsGemInstaller#install'
/Users/bryce/.rubies/ruby-4.0.0/lib/ruby/4.0.0/bundler/source/rubygems.rb:217:in 'block in Bundler::Source::Rubygems#install'
/Users/bryce/.rubies/ruby-4.0.0/lib/ruby/4.0.0/rubygems.rb:1051:in 'Gem.time'
/Users/bryce/.rubies/ruby-4.0.0/lib/ruby/4.0.0/bundler/source/rubygems.rb:216:in 'Bundler::Source::Rubygems#install'
/Users/bryce/.rubies/ruby-4.0.0/lib/ruby/4.0.0/bundler/installer/gem_installer.rb:54:in 'Bundler::GemInstaller#install'
/Users/bryce/.rubies/ruby-4.0.0/lib/ruby/4.0.0/bundler/installer/gem_installer.rb:17:in 'Bundler::GemInstaller#install_from_spec'
/Users/bryce/.rubies/ruby-4.0.0/lib/ruby/4.0.0/bundler/installer/parallel_installer.rb:133:in 'Bundler::ParallelInstaller#do_install'
/Users/bryce/.rubies/ruby-4.0.0/lib/ruby/4.0.0/bundler/installer/parallel_installer.rb:124:in 'block in Bundler::ParallelInstaller#worker_pool'
/Users/bryce/.rubies/ruby-4.0.0/lib/ruby/4.0.0/bundler/worker.rb:62:in 'Bundler::Worker#apply_func'
/Users/bryce/.rubies/ruby-4.0.0/lib/ruby/4.0.0/bundler/worker.rb:57:in 'block in Bundler::Worker#process_queue'
/Users/bryce/.rubies/ruby-4.0.0/lib/ruby/4.0.0/bundler/worker.rb:54:in 'Kernel#loop'
/Users/bryce/.rubies/ruby-4.0.0/lib/ruby/4.0.0/bundler/worker.rb:54:in 'Bundler::Worker#process_queue'
/Users/bryce/.rubies/ruby-4.0.0/lib/ruby/4.0.0/bundler/worker.rb:90:in 'block (2 levels) in Bundler::Worker#create_threads'
An error occurred while installing red-arrow (24.0.0), and Bundler cannot continue.
In Gemfile:
activerecord-adbc-adapter was resolved to 0.0.1, which depends on
red-adbc was resolved to 1.11.0, which depends on
red-arrow
I see it errors out when trying to find arrow-c-glib on conda-forge which fails because we don't have arm64 packages on conda-forge. But the real thing I wanted was for rubygems-requirements-system to ignore the failure and continue down to try to install with homebrew.
To fix this, I think we could:
- Publish arm64 binaries to conda-forge
- Remove the conda options from the requirements since Linux users will already get covered by apt/yum/etc
- Improve
rubygems-requirements-systemto have fallback behavior in this case (package manager and package name is available but wrong platform)
System Info
$ ruby -v
ruby 4.0.0 (2025-12-25 revision 553f1675f3) +PRISM [arm64-darwin25]
$ bundle -v
4.0.3
cc @kou
Component(s)
Ruby
Activity
Enable macOS/Linux arm64 builds
Enable macOS/Linux arm64 builds
Enable macOS/Linux arm64 builds
kou commentedon Jun 15, 2026
Oh, sorry. I didn't notice the case.
Let's use the 1. option for this case: conda-forge/arrow-c-glib-feedstock#42
But the 3. option is also interesting. I'll add support for specifying platform explicitly by users instead of auto fallback. If the detected platform isn't expected by users, users will want to specify their platform explicitly.
Enable macOS/Linux arm64 builds
Enable macOS/Linux arm64 builds
Enable macOS/Linux arm64 builds
Enable macOS/Linux arm64 builds
Enable macOS/Linux arm64 builds
kou commentedon Jun 16, 2026
It's merged. This problem must be solved.
kou commentedon Jul 18, 2026
We can use
RUBYGEMS_REQUIREMENTS_SYSTEM=homebrewwith rubygems-requirements-system 0.1.8 to use Homebrew instead of conda.amoeba commentedon Jul 24, 2026
RUBYGEMS_REQUIREMENTS_SYSTEM_PLATFORM=homebrew(notRUBYGEMS_REQUIREMENTS_SYSTEM=homebrew) works great now, thanks @kou!I took a look at option (3) and realized that part of what's going on is that homebrew and conda aren't playing well together. I filed two PRs because the same thing was happening in two places: