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

OSX M1环境Ruby3.1调用fork()遇NotImplementedError求助

解决方案

方法一:重新编译适配ARM64的Ruby 3.1.2

  1. 卸载当前有问题的Ruby版本:
    rvm uninstall 3.1.2
    
  2. 确保已安装Homebrew版OpenSSL(未安装则先执行):
    brew install openssl
    
  3. 重新安装Ruby,指定ARM64架构及编译选项:
    rvm install 3.1.2 --with-openssl-dir=$(brew --prefix openssl) --enable-shared
    
  4. 设置为默认版本:
    rvm use 3.1.2 --default
    

方法二:升级childprocess gem

若重新编译Ruby后问题仍存在,升级childprocess到最新版本以适配ARM64架构:

bundle update childprocess

验证解决效果

打开irb执行以下命令,返回进程ID则说明fork功能恢复正常:

Kernel.fork

问题背景

M1架构macOS环境中,通过RVM全新安装Ruby 3.1.2(已卸载系统内其他Ruby版本)后,调用Kernel.fork时报错:

# irb
3.1.2 :001 > Kernel.fork
(irb):1:in `fork': fork() function is unimplemented on this machine (NotImplementedError)
from (irb):1:in `<main>'
from /Users/me/.rvm/rubies/ruby-3.1.2/lib/ruby/gems/3.1.0/gems/irb-1.4.1/exe/irb:11:in `<top (required)>'
from /Users/me/.rvm/rubies/ruby-3.1.2/bin/irb:25:in `load'
from /Users/me/.rvm/rubies/ruby-3.1.2/bin/irb:25:in `<main>'
from /Users/me/.rvm/gems/ruby-3.1.2/bin/ruby_executable_hooks:22:in `eval'
from /Users/me/.rvm/gems/ruby-3.1.2/bin/ruby_executable_hooks:22:in `<main>'

该问题首次出现于升级Ruby并将测试驱动从cuprite切换为selenium后,完整错误栈如下:

NotImplementedError:
fork() function is unimplemented on this machine
      # /Users/me/.rvm/gems/ruby-3.1.2/gems/childprocess-4.1.0/lib/childprocess/unix/fork_exec_process.rb:20:in `fork'
      # /Users/me/.rvm/gems/ruby-3.1.2/gems/childprocess-4.1.0/lib/childprocess/unix/fork_exec_process.rb:20:in `launch_process'
      # /Users/me/.rvm/gems/ruby-3.1.2/gems/childprocess-4.1.0/lib/childprocess/abstract_process.rb:81:in `start'
      # /Users/me/.rvm/gems/ruby-3.1.2/gems/selenium-webdriver-4.5.0/lib/selenium/webdriver/common/service_manager.rb:109:in `start_process'
      # /Users/me/.rvm/gems/ruby-3.1.2/gems/selenium-webdriver-4.5.0/lib/selenium/webdriver/common/service_manager.rb:56:in `block in start'
      # /Users/me/.rvm/gems/ruby-3.1.2/gems/selenium-webdriver-4.5.0/lib/selenium/webdriver/common/socket_lock.rb:41:in `locked'
      # /Users/me/.rvm/gems/ruby-3.1.2/gems/selenium-webdriver-4.5.0/lib/selenium/webdriver/common/service_manager.rb:54:in `start'
      # /Users/me/.rvm/gems/ruby-3.1.2/gems/selenium-webdriver-4.5.0/lib/selenium/webdriver/common/service.rb:84:in `launch'
      # /Users/me/.rvm/gems/ruby-3.1.2/gems/selenium-webdriver-4.5.0/lib/selenium/webdriver/common/driver.rb:341:in `service_url'
      # /Users/me/.rvm/gems/ruby-3.1.2/gems/selenium-webdriver-4.5.0/lib/selenium/webdriver/common/driver.rb:321:in `create_bridge'
      # /Users/me/.rvm/gems/ruby-3.1.2/gems/selenium-webdriver-4.5.0/lib/selenium/webdriver/common/driver.rb:74:in `initialize'
      # /Users/me/.rvm/gems/ruby-3.1.2/gems/selenium-webdriver-4.5.0/lib/selenium/webdriver/common/driver.rb:47:in `new'
      # /Users/me/.rvm/gems/ruby-3.1.2/gems/selenium-webdriver-4.5.0/lib/selenium/webdriver/common/driver.rb:47:in `for'
      # /Users/me/.rvm/gems/ruby-3.1.2/gems/selenium-webdriver-4.5.0/lib/selenium/webdriver.rb:89:in `for'
      # /Users/me/.rvm/gems/ruby-3.1.2/gems/capybara-3.36.0/lib/capybara/selenium/driver.rb:83:in `browser'
      # ./spec/rails_helper.rb:143:in `block (2 levels) in <top (required)>'

相关截图


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 20:55:18