CentOS 6.8安装RabbitMQ 3.7.4时Erlang 20未被识别的问题
解决CentOS 6.8安装RabbitMQ 3.7.4时Erlang依赖不识别的问题
我之前也碰到过一模一样的问题——CentOS 6的官方源和EPEL源里的Erlang版本都太低,手动编译安装的Erlang 20又不被yum的依赖检测机制识别,导致安装RabbitMQ时一直去拉取旧版本的Erlang,最终失败。下面给你两个可行的解决思路:
方法一:直接用rpm忽略依赖安装
既然你已经确认Erlang 20是符合RabbitMQ 3.7.4要求的(RabbitMQ 3.7.x确实适配Erlang 20),可以直接跳过yum的依赖检查,用rpm命令安装RabbitMQ包:
sudo rpm -ivh --nodeps https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.4/rabbitmq-server-3.7.4-1.el6.noarch.rpm
注意:这种方式会绕过yum的依赖校验,后续如果用yum更新RabbitMQ或其他依赖Erlang的包时,可能会出现冲突,适合临时解决安装问题。
方法二:创建Dummy RPM让yum识别已安装的Erlang
这个方法更规范,通过生成一个“假”的RPM包,告诉yum你已经安装了符合版本要求的Erlang,具体步骤如下:
- 先安装生成RPM包的工具fpm:
sudo yum install -y ruby rubygems sudo gem install fpm - 生成标记Erlang 20已安装的dummy包:
fpm -s empty -t rpm -n erlang -v 20.0 \ -d "glibc >= 2.12" \ --provides erlang \ --provides erlang-erts = 20.0 - 安装这个生成的dummy RPM包:
sudo rpm -ivh erlang-20.0-1.x86_64.rpm - 现在再用你原来的yum命令安装RabbitMQ,就能正常识别Erlang依赖了:
sudo yum install https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.4/rabbitmq-server-3.7.4-1.el6.noarch.rpm
后续验证
安装完成后,记得验证RabbitMQ是否能正常启动:
sudo service rabbitmq-server start # 设置开机自启 sudo chkconfig rabbitmq-server on # 查看状态 sudo service rabbitmq-server status
内容的提问来源于stack exchange,提问作者Aldibe
相关产品推荐
相关产品推荐

