Skip to content

[Ruby] red-arrow fails to install on arm64 macOS with rubygems-requirements-system #50180

@amoeba

Description

@amoeba

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:

  1. Publish arm64 binaries to conda-forge
  2. Remove the conda options from the requirements since Linux users will already get covered by apt/yum/etc
  3. Improve rubygems-requirements-system to 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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions