安装eventmachine(1.2.7)失败致Bundler中断,如何解决Jekyll使用问题?
解决Jekyll + Bundler安装eventmachine失败的问题
以下是针对macOS系统(从报错路径的darwin-22判断为Monterey及以上版本)的可行解决步骤:
1. 安装编译依赖的Xcode命令行工具
eventmachine是原生扩展gem,需要C编译环境,先确保安装Xcode命令行工具:
xcode-select --install
按弹出提示完成安装后,重启终端再尝试后续操作。
2. 指定OpenSSL路径安装eventmachine
旧版本eventmachine(1.2.7)与新版macOS默认的OpenSSL版本不兼容,需要手动指定适配的OpenSSL路径:
- 先通过Homebrew安装OpenSSL 1.1(如果未安装):
brew install openssl@1.1 - 然后用指定路径的方式安装目标版本的eventmachine:
gem install eventmachine -v '1.2.7' -- --with-openssl-dir=$(brew --prefix openssl@1.1)
安装成功后,再运行bundle install即可。
3. 升级Ruby版本
你当前使用的Ruby 2.6.0版本较旧,与新macOS系统兼容性较差,建议升级到稳定的新版本(如3.2.x):
以rbenv为例(如果用rvm操作逻辑类似):
# 安装Ruby 3.2.2 rbenv install 3.2.2 # 设置全局Ruby版本 rbenv global 3.2.2 # 重启终端后验证版本 ruby -v
版本切换完成后,重新运行bundle install。
4. 清理缓存后重新安装
如果之前的安装缓存导致问题,可清理后重新执行:
# 删除Gemfile.lock文件 rm Gemfile.lock # 删除本地bundle缓存目录 rm -rf vendor/bundle # 重新安装依赖 bundle install
5. 替换为兼容的eventmachine版本
如果上述方法仍无效,可直接在Gemfile中指定修复了macOS编译问题的eventmachine版本:
在Gemfile中添加或修改:
gem 'eventmachine', '1.2.7.1'
然后运行:
bundle update eventmachine
内容的提问来源于stack exchange,提问作者GUANLIN MENG
相关产品推荐
相关产品推荐

