Skip to content

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

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions