安装Faye Gem时遇Eventmachine(1.2.7)依赖错误求助
解决EventMachine 1.2.7安装失败导致Faye依赖无法完成的问题
方案1:强制指定兼容的EventMachine版本
em-http-request 1.1.7对EventMachine的依赖要求是>= 1.0.4,并非严格锁定1.2.7,你可以直接在Gemfile中指定一个与Ruby 2.6.8兼容的版本绕开问题:
- 在Gemfile中添加或修改:
gem 'eventmachine', '1.2.8' gem 'faye', '~> 1.2', '>= 1.2.3' - 执行命令更新依赖:
bundle update eventmachine bundle install
方案2:补全系统编译依赖
EventMachine安装失败大多是因为缺少编译工具或底层依赖库,根据你的系统环境执行以下操作:
- Debian/Ubuntu 系统:
sudo apt-get install build-essential libssl-dev - MacOS 系统:
- 安装Xcode命令行工具:
xcode-select --install - 配置OpenSSL编译路径(需提前用Homebrew安装
openssl@1.1):bundle config build.eventmachine --with-openssl-dir=$(brew --prefix openssl@1.1)
- 安装Xcode命令行工具:
- 完成后重新执行
bundle install
方案3:重新安装Ruby 2.6.8并修复编译环境
如果Ruby版本本身的编译环境有问题,可通过版本管理工具重新安装:
- 使用rbenv:
rbenv uninstall 2.6.8 # MacOS下指定OpenSSL路径安装 RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl@1.1)" rbenv install 2.6.8 # Linux下可直接执行 # rbenv install 2.6.8 - 使用rvm:
rvm remove 2.6.8 rvm install 2.6.8 --with-openssl-dir=/usr/lib/ssl - 重新绑定Ruby版本后执行
bundle install
方案4:降级Faye到更稳定的兼容版本
尝试锁定Faye到1.2.3版本,其依赖链对EventMachine的兼容性更成熟:
- 修改Gemfile:
gem 'faye', '1.2.3' - 执行命令更新:
bundle update faye bundle install
内容的提问来源于stack exchange,提问作者Salman Bashir
相关产品推荐
相关产品推荐

