Mac M2 Ventura 13.2.1下Eventmachine 1.2.7安装失败求助
解决Mac M2 Ventura 13.2.1下eventmachine 1.2.7 gem安装失败的问题
第一步:清理混乱的RVM环境
- 列出当前所有Ruby版本及gemset:
rvm list - 删除多余的
ruby-3.0.3@beefgemset:rvm gemset delete ruby-3.0.3@beef,重复执行直到所有同名gemset清理完毕 - 重新创建干净的目标gemset并切换:
rvm use ruby-3.0.3@beef --create
第二步:确保Ruby为arm64架构编译
如果当前Ruby是x86_64架构(通过ruby -e 'puts RUBY_PLATFORM'查看,若输出x86_64-darwin22则需处理):
- 卸载现有Ruby版本:
rvm remove ruby-3.0.3 - 用brew安装的OpenSSL 1.1重新编译arm64架构的Ruby:
brew install openssl@1.1 rvm install 3.0.3 --with-openssl-dir=$(brew --prefix openssl@1.1) --arch=arm64
第三步:指定OpenSSL路径安装eventmachine
执行以下命令安装eventmachine 1.2.7,强制链接到正确的OpenSSL库并指定arm64架构:
gem install eventmachine -v 1.2.7 -- --with-ssl-dir=$(brew --prefix openssl@1.1) --arch=arm64
备选方案:手动补丁适配arm64
如果上述方法仍失败,可手动修改eventmachine的源码编译:
- 克隆eventmachine仓库并切换到1.2.7版本:
git clone https://github.com/eventmachine/eventmachine.git cd eventmachine git checkout v1.2.7 - 打开
ext/em.cpp文件,确认调用SSL_get1_peer_certificate的代码块已正确关联OpenSSL 1.1库逻辑 - 本地编译安装:
gem build eventmachine.gemspec gem install eventmachine-1.2.7.gem -- --with-ssl-dir=$(brew --prefix openssl@1.1) --arch=arm64
内容的提问来源于stack exchange,提问作者Panagiotis Kladogenis
相关产品推荐
相关产品推荐

