You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

macOS Monterey下Bundle Install失败,无法安装racc求助

问题描述

使用macOS Monterey v12.6系统,在Ruby on Rails项目中执行bundle install时失败,无法完成安装;同时执行rails -v也出现错误。

环境信息

  • Ruby版本:
ruby 2.6.1p33 (2019-01-30 revision 66950) [x86_64-darwin19]
  • Gemfile中Rails配置:
gem 'rails', '~> 6.1.4', '>= 6.0.4.6'

bundle install报错信息

Fetching racc 1.6.0
Installing racc 1.6.0 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    current directory: /Users/myself/.rvm/gems/ruby-2.6.1/gems/racc-1.6.0/ext/racc/cparse
/Users/myself/.rvm/rubies/ruby-2.6.1/bin/ruby -I /Users/myself/.rvm/rubies/ruby-2.6.1/lib/ruby/site_ruby/2.6.0 -r
./siteconf20220930-1192-12lr3he.rb extconf.rb
checking for rb_block_call()... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
        --with-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=/Users/myself/.rvm/rubies/ruby-2.6.1/bin/$(RUBY_BASE_NAME)
/Users/myself/.rvm/rubies/ruby-2.6.1/lib/ruby/2.6.0/mkmf.rb:467:in `try_do': The compiler failed to generate an executable file.
(RuntimeError)
You have to install development tools first.
        from /Users/myself/.rvm/rubies/ruby-2.6.1/lib/ruby/2.6.0/mkmf.rb:552:in `try_link0'
        from /Users/myself/.rvm/rubies/ruby-2.6.1/lib/ruby/2.6.0/mkmf.rb:570:in `try_link'
        from /Users/myself/.rvm/rubies/ruby-2.6.1/lib/ruby/2.6.0/mkmf.rb:782:in `try_func'
        from /Users/myself/.rvm/rubies/ruby-2.6.1/lib/ruby/2.6.0/mkmf.rb:1069:in `block in have_func'
        from /Users/myself/.rvm/rubies/ruby-2.6.1/lib/ruby/2.6.0/mkmf.rb:959:in `block in checking_for'
        from /Users/myself/.rvm/rubies/ruby-2.6.1/lib/ruby/2.6.0/mkmf.rb:361:in `block (2 levels) in postpone'
        from /Users/myself/.rvm/rubies/ruby-2.6.1/lib/ruby/2.6.0/mkmf.rb:331:in `open'
        from /Users/myself/.rvm/rubies/ruby-2.6.1/lib/ruby/2.6.0/mkmf.rb:361:in `block in postpone'
        from /Users/myself/.rvm/rubies/ruby-2.6.1/lib/ruby/2.6.0/mkmf.rb:331:in `open'
        from /Users/myself/.rvm/rubies/ruby-2.6.1/lib/ruby/2.6.0/mkmf.rb:357:in `postpone'
        from /Users/myself/.rvm/rubies/ruby-2.6.1/lib/ruby/2.6.0/mkmf.rb:958:in `checking_for'
        from /Users/myself/.rvm/rubies/ruby-2.6.1/lib/ruby/2.6.0/mkmf.rb:1068:in `have_func'
        from extconf.rb:6:in `<main>'

To see why this extension failed to compile, please check the mkmf.log which can be found here:

  /Users/myself/.rvm/gems/ruby-2.6.1/extensions/x86_64-darwin-19/2.6.0/racc-1.6.0/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in /Users/myself/.rvm/gems/ruby-2.6.1/gems/racc-1.6.0 for inspection.
Results logged to /Users/myself/.rvm/gems/ruby-2.6.1/extensions/x86_64-darwin-19/2.6.0/racc-1.6.0/gem_make.out

An error occurred while installing racc (1.6.0), and Bundler cannot continue.
Make sure that `gem install racc -v '1.6.0' --source 'https://rubygems.org/'` succeeds before bundling.

In Gemfile:
  rails was resolved to 6.1.5, which depends on
    actioncable was resolved to 6.1.5, which depends on
      actionpack was resolved to 6.1.5, which depends on
        actionview was resolved to 6.1.5, which depends on
          rails-dom-testing was resolved to 2.0.3, which depends on
            nokogiri was resolved to 1.13.3, which depends on
              racc

rails -v报错信息

traceback (most recent call last):
        8: from /Users/myself/.rvm/gems/ruby-2.6.1/bin/ruby_executable_hooks:24:in `<main>'
        7: from /Users/myself/.rvm/gems/ruby-2.6.1/bin/ruby_executable_hooks:24:in `eval'
        6: from /Users/myself/.rvm/gems/ruby-2.6.1/bin/rails:23:in `<main>'
        5: from /Users/myself/.rvm/rubies/ruby-2.6.1/lib/ruby/site_ruby/2.6.0/rubygems.rb:297:in `activate_bin_path'
        4: from /Users/myself/.rvm/rubies/ruby-2.6.1/lib/ruby/site_ruby/2.6.0/rubygems.rb:297:in `synchronize'
        3: from /Users/myself/.rvm/rubies/ruby-2.6.1/lib/ruby/site_ruby/2.6.0/rubygems.rb:299:in `block in activate_bin_path'
        2: from /Users/myself/.rvm/rubies/ruby-2.6.1/lib/ruby/site_ruby/2.6.0/rubygems.rb:232:in `finish_resolve'
        1: from /Users/myself/.rvm/rubies/ruby-2.6.1/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:175:in `require'
/Users/myself/.rvm/rubies/ruby-2.6.1/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:175:in `ensure in require': CRITICAL: RUBYGEMS_ACTIVATION_MONITOR.owned?: before false -> after true (RuntimeError)

已尝试的方法

试过Stack Overflow上的一个解决方案,但未解决问题。


解决方案

1. 修复Xcode Command Line Tools

报错核心提示缺少开发工具,按以下步骤处理:

  • 终端执行:
xcode-select --install
  • 若提示已安装,执行重置:
sudo xcode-select --reset
  • 打开Xcode,同意许可协议,等待组件安装完成。

2. 重新编译Ruby(RVM环境)

Ruby 2.6.1与macOS Monterey存在兼容性问题,从源码重新安装:

rvm reinstall 2.6.1 --disable-binary

3. 手动安装racc gem

绕过编译器严格检查,单独安装racc:

gem install racc -v '1.6.0' -- --with-cflags="-Wno-error=implicit-function-declaration"

4. 清理缓存后重新执行bundle install

bundle clean --force
rm -rf Gemfile.lock
bundle install

5. 解决rails -v报错

bundle install成功后,执行以下命令重置gem环境:

rvm gemset use <你的项目gemset名称>

或直接重启终端,确保gem环境加载正常。


内容的提问来源于stack exchange,提问作者Norbert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 21:46:06