在 centos 7.4 上安装 rabbitmq v3.7.9 的过程

Albert · 2018年12月03日 · 1438 次阅读
  1. 查询操作系统版本
# lsb_release -a
LSB Version:    :core-4.1-amd64:core-4.1-noarch
Distributor ID:    CentOS
Description:    CentOS Linux release 7.4.1708 (Core)
Release:    7.4.1708
Codename:    Core
  1. 下载操作系统相对应版本的 rabbitmq

页面地址:
https://www.rabbitmq.com/install-rpm.html#downloads

# wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.9/rabbitmq-server-3.7.9-1.el7.noarch.rpm
  1. yum 手动安装
# yum -y install rabbitmq-server-3.7.9-1.el7.noarch.rpm
已加载插件:fastestmirror
正在检查 rabbitmq-server-3.7.9-1.el7.noarch.rpm: rabbitmq-server-3.7.9-1.el7.noarch
rabbitmq-server-3.7.9-1.el7.noarch.rpm 将被安装
正在解决依赖关系
--> 正在检查事务
---> 软件包 rabbitmq-server.noarch.0.3.7.9-1.el7 将被 安装
--> 正在处理依赖关系 erlang >= 19.3,它被软件包 rabbitmq-server-3.7.9-1.el7.noarch 需要
base                                                                                                                                 | 3.6 kB  00:00:00
epel                                                                                                                                 | 3.2 kB  00:00:00
extras                                                                                                                               | 3.4 kB  00:00:00
updates                                                                                                                              | 3.4 kB  00:00:00
(1/5): epel/x86_64/group_gz                                                                                                          |  88 kB  00:00:00
(2/5): epel/x86_64/updateinfo                                                                                                        | 934 kB  00:00:00
(3/5): extras/7/x86_64/primary_db                                                                                                    | 205 kB  00:00:00
(4/5): epel/x86_64/primary                                                                                                           | 3.6 MB  00:00:00
(5/5): updates/7/x86_64/primary_db                                                                                                   | 6.0 MB  00:00:00
Determining fastest mirrors
epel                                                                                                                                            12720/12720
--> 正在处理依赖关系 socat,它被软件包 rabbitmq-server-3.7.9-1.el7.noarch 需要
--> 正在检查事务
---> 软件包 rabbitmq-server.noarch.0.3.7.9-1.el7 将被 安装
--> 正在处理依赖关系 erlang >= 19.3,它被软件包 rabbitmq-server-3.7.9-1.el7.noarch 需要
---> 软件包 socat.x86_64.0.1.7.3.2-2.el7 将被 安装
--> 解决依赖关系完成
错误:软件包:rabbitmq-server-3.7.9-1.el7.noarch (/rabbitmq-server-3.7.9-1.el7.noarch)
          需要:erlang >= 19.3
          可用: erlang-R16B-03.18.el7.x86_64 (epel)
              erlang = R16B-03.18.el7
 您可以尝试添加 --skip-broken 选项来解决该问题
** 发现 1 个已存在的 RPM 数据库问题, 'yum check' 输出如下:
python-requests-2.6.0-1.el7_1.noarch 有缺少的需求 python-urllib3 >= ('0', '1.10.2', '1')

处理问题

安装日志中,显示有二个问题:一个是需要 erlang >=19.3,另一个是缺少 python-urllib3

一、关于python-urllib3的解决方法

默认情况下,pip 命令是 python2.7版本的。
list 查询后,发现有一个 urllib3 (1.23)

# pip -V
pip 8.1.2 from /usr/lib/python2.7/site-packages (python 2.7)
# pip list | grep url
pycurl (7.19.0)
urlgrabber (3.10)
urllib3 (1.23)

可能是由于 urllib3 (1.23) 版本不兼容吧?于是,卸载掉:

pip uninstall urllib3

然后,通过yum 手工方式来安装 python-urllib3。方法如下:

网上搜索了一下 python-urllib3,找到了一个页面:
python-urllib3 rpm build for : CentOS 7.

找到一个 download 链接地址,然后下载到本地:
wget ftp://bo.mirror.garr.it/1/slc/centos/7.1.1503/updates/x86_64/Packages/python-urllib3-1.10.2-1.el7_1.noarch.rpm

yum 手工安装:
yum -y install python-urllib3-1.10.2-1.el7_1.noarch.rpm

再次运行 yum -y install rabbitmq-server-3.7.9-1.el7.noarch.rpm 安装命令,发现 python-urllib3 问题已不存在,只剩余一个erlang问题。

二、关于erlang >=19.3 的解决方案

  1. 首先,添加一个 Yum repositories 的配置文件。
    参考文档: Zero-dependency Erlang RPM for RabbitMQ

vi /etc/yum.repos.d/rabbitmq-erlang.repo
内容如下:

[rabbitmq-erlang]
name=rabbitmq-erlang
baseurl=https://dl.bintray.com/rabbitmq-erlang/rpm/erlang/21/el/7
gpgcheck=1
gpgkey=https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
repo_gpgcheck=0
enabled=1
  1. 更新 yum 缓存
# yum clean all
# yum makecache
  1. 查询一下 erlang 的安装包
# yum list |grep erlang
emacs-erlang.noarch                      R16B-03.18.el7                 epel
emacs-erlang-el.noarch                   R16B-03.18.el7                 epel
erlang.x86_64                            21.1.4-1.el7.centos            rabbitmq-erlang
erlang-appmon.x86_64                     R16B-03.18.el7                 epel
erlang-asn1.x86_64                       R16B-03.18.el7                 epel
erlang-common_test.x86_64                R16B-03.18.el7                 epel
erlang-compiler.x86_64                   R16B-03.18.el7                 epel

里面有一个 erlang.x86_64,版本为:21.1.4-1.el7.centos,而且所属于 rabbitmq-erlang。确定这个包,就是我们需要的了。接下来就安装一下。

  1. 安装 erlang
# yum install erlang.x86_64 
  1. 测试一下

安装成功之后,测试一下:

# erl
Erlang/OTP 21 [erts-10.1.3] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] [hipe]

Eshell V10.1.3  (abort with ^G)
1>

可见,erlang 已被成功安装。

三、再次安装 rabbitmq-server-3.7.9-1.el7.noarch.rpm

上述两个问题处理之后,再次安装 rabbitmq。很顺利,很完美,过程如下:

# yum -y install rabbitmq-server-3.7.9-1.el7.noarch.rpm
已加载插件:fastestmirror
正在检查 rabbitmq-server-3.7.9-1.el7.noarch.rpm: rabbitmq-server-3.7.9-1.el7.noarch
rabbitmq-server-3.7.9-1.el7.noarch.rpm 将被安装
正在解决依赖关系
--> 正在检查事务
---> 软件包 rabbitmq-server.noarch.0.3.7.9-1.el7 将被 安装
--> 正在处理依赖关系 socat,它被软件包 rabbitmq-server-3.7.9-1.el7.noarch 需要
Loading mirror speeds from cached hostfile
--> 正在检查事务
---> 软件包 socat.x86_64.0.1.7.3.2-2.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

============================================================================================================================================================
 Package                            架构                      版本                             源                                                      大小
============================================================================================================================================================
正在安装:
 rabbitmq-server                    noarch                    3.7.9-1.el7                      /rabbitmq-server-3.7.9-1.el7.noarch                     10 M
为依赖而安装:
 socat                              x86_64                    1.7.3.2-2.el7                    base                                                   290 k

事务概要
============================================================================================================================================================
安装  1 软件包 (+1 依赖软件包)

总计:11 M
总下载量:290 k
安装大小:12 M
Downloading packages:
socat-1.7.3.2-2.el7.x86_64.rpm                                                                                                       | 290 kB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : socat-1.7.3.2-2.el7.x86_64                                                                                                              1/2
  正在安装    : rabbitmq-server-3.7.9-1.el7.noarch                                                                                                      2/2
  验证中      : rabbitmq-server-3.7.9-1.el7.noarch                                                                                                      1/2
  验证中      : socat-1.7.3.2-2.el7.x86_64                                                                                                              2/2

已安装:
  rabbitmq-server.noarch 0:3.7.9-1.el7

作为依赖被安装:
  socat.x86_64 0:1.7.3.2-2.el7

完毕!
共收到0条回复
暂无任何评论
我要评论
登录之后,才能够回复。如果您还没有帐号,请先注册
小甜饼

学习——永远不晚。 —— 高尔基