如何解决Ubuntu 16.04安装RabbitMQ 3.7.4与Erlang/OTP 20的依赖错误
解决Ubuntu 16.04上RabbitMQ 3.7.4与Erlang/OTP 20依赖冲突问题
步骤1:彻底卸载现有Erlang版本
清理系统中已安装的高版本Erlang,消除版本干扰:
sudo apt-get remove --purge erlang* esl-erlang sudo apt-get autoremove sudo apt-get clean
步骤2:添加Erlang官方旧版本源
针对Ubuntu 16.04(xenial)添加Erlang Solutions的源,用于获取OTP 20版本:
# 导入GPG密钥 wget -O- https://packages.erlang-solutions.com/ubuntu/erlang_solutions.asc | sudo apt-key add - # 添加源配置 echo "deb https://packages.erlang-solutions.com/ubuntu xenial contrib" | sudo tee /etc/apt/sources.list.d/erlang-solutions.list
步骤3:固定Erlang版本为OTP 20系列
创建版本优先级配置文件,强制系统安装指定的Erlang版本:
sudo nano /etc/apt/preferences.d/erlang.pref
写入以下内容后保存退出(Ctrl+O 回车确认,Ctrl+X 退出):
Package: erlang* Pin: version 1:20.* Pin-Priority: 1001
步骤4:安装指定版本的Erlang依赖
更新源后,安装RabbitMQ 3.7.4所需的OTP 20系列组件:
sudo apt-get update sudo apt-get install erlang-base=1:20.3.8.26-1 erlang-crypto=1:20.3.8.26-1 erlang-eldap=1:20.3.8.26-1 erlang-inets=1:20.3.8.26-1 erlang-mnesia=1:20.3.8.26-1 erlang-os-mon=1:20.3.8.26-1 erlang-parsetools=1:20.3.8.26-1 erlang-public-key=1:20.3.8.26-1 erlang-runtime-tools=1:20.3.8.26-1 erlang-ssl=1:20.3.8.26-1 erlang-syntax-tools=1:20.3.8.26-1 erlang-tools=1:20.3.8.26-1 erlang-xmerl=1:20.3.8.26-1
步骤5:安装RabbitMQ 3.7.4
下载对应版本的deb包并完成安装,若出现依赖遗漏则自动修复:
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.4/rabbitmq-server_3.7.4-1_all.deb sudo dpkg -i rabbitmq-server_3.7.4-1_all.deb sudo apt-get -f install
步骤6:锁定版本防止自动升级
避免后续系统更新时误升级Erlang或RabbitMQ:
sudo apt-mark hold erlang* rabbitmq-server
内容的提问来源于stack exchange,提问作者Muhammad
相关产品推荐
相关产品推荐

