CentOS7 安装RabbitMQ 亲测

CentOS7 安装RabbitMQ 亲测

使用yum install erlang 命令安装了erlang,然后再RabbitMQ下载了 rabbitmq-server-3.7.4-1.el7.noarch.rpm 在执行rpm -ivh rabbitmq-server-3.7.4-1.el7.noarch.rpm命令时,报错

warning: rabbitmq-server-3.7.4-1.el7.noarch.rpm: Header V4 RSA/SHA1 Signature, key ID 6026dfca: NOKEY
error: Failed dependencies:
    erlang >= 19.3 is needed by rabbitmq-server-3.7.4-1.el7.noarch
    socat is needed by rabbitmq-server-3.7.4-1.el7.noarch

这儿存在两个问题: 问题一、erlang >= 19.3 is needed by rabbitmq-server-3.7.4-1.el7.noarch 问题二、socat is needed by rabbitmq-server-3.7.4-1.el7.noarch 接下来围绕这两个问题。

准备

RabbitMQ:rpm -ivh rabbitmq-server-3.7.4-1.el7.noarch.rpm 下载请戳这儿erlang:下载请戳这儿

问题二、socat is needed by rabbitmq-server-3.7.4-1.el7.noarch

解决方案:使用命令 yum -y install socat 进行安装即可,我看有些博主在这步的时候 会遇到另一个问题 会报错没有socat包或是找不到socat包,解决方法安装centos的epel的扩展源,这个问题解决方案:yum -y install epel-release 执行这个命令后再执行之前的 socat安装命令

问题一、erlang >= 19.3 is needed by rabbitmq-server-3.7.4-1.el7.noarch

由于我们使用yum install erlang命令安装了erlang,它的版本不支持rabbitmq-server-3.7.4-1.el7.noarch所以我们重新安装提示给的 19.3的版本。


准备安装Erlang

首先我们需要准备安装环境

依赖环境的安装-如果需要用编译安装erlang语言环境,需要安装C++编译 yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC unixODBC-devel httpd python-simplejson我将这些东西重新用yum命令安装一下后 在进行编译,然后编译就没有报错。再次执行安装命令。

获取Erlang(上面提示19.3的版本就可以,但是我安装了不行 所以下了个不是最新的版本试试)

[root@izbp1e0h5tks006vnlaro4z tool]# wget http://erlang.org/download/otp_src_20.2.tar.gz
--2018-04-26 13:45:42--  http://erlang.org/download/otp_src_20.2.tar.gz
Resolving erlang.org (erlang.org)... 192.121.151.106
Connecting to erlang.org (erlang.org)|192.121.151.106|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 87136848 (83M) [application/x-tar]
Saving to: ‘otp_src_20.2.tar.gz’

100%[=====================================================================================================================================================>] 87,136,848   306KB/s   in 4m 40s 

2018-04-26 13:50:25 (304 KB/s) - ‘otp_src_20.2.tar.gz’ saved [87136848/87136848]

解压erlang安装包,会有很多的东西

# tar -xzvf otp_src_20.2.tar.gz

然后我们在进入解压后的目录

# cd otp_src_20.2

编译安装erlang语言环境 prefix=/usr/local/erlang 为安装目录

./configure  --prefix=/usr/local/erlang --enable-smp-support  --enable-threads  --enable-sctp --enable-kernel-poll --enable-hipe  --with-ssl --without-javac

若是安装环境没准备好 这儿编译会报错

configure: error: No curses library functions found
configure: error: /bin/sh '/usr/local/tool/otp_src_19.3/erts/configure' failed for erts

开始安装编译:

make && make install 

配置erlang环境变量:

vim /etc/profile

export PATH=$PATH:/usr/local/erlang/bin
//执行下面命令修改配置文件立即生效
source /etc/profil

验证是否安装成功:

//注释:输入erl Erlang/OTP 17 [erts-6.2] [source] [smp:2:2] [async-threads:10] [kernel-poll:false],会输出版本号信息

# erl Erlang/OTP 17 [erts-6.2] [source] [smp:2:2] [async-threads:10] [kernel-poll:false]

Erlang R16B03-1 (erts-5.10.4) [source] [64-bit] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V5.10.4  (abort with ^G)
1> 

开始安装rabbitmq rpm包

需要回到 rabbitmq 安装包目录

执行rpm安装命令

# rpm -ivh rabbitmq-server-3.7.4-1.el7.noarch.rpm 

安装了前面准备的东西 但是还是报错

[root@ tool]#  rpm -ivh rabbitmq-server-3.7.4-1.el7.noarch.rpm 
warning: rabbitmq-server-3.7.4-1.el7.noarch.rpm: Header V4 RSA/SHA1 Signature, key ID 6026dfca: NOKEY
error: Failed dependencies:
	erlang >= 19.3 is needed by rabbitmq-server-3.7.4-1.el7.noarch

这种方式会提示版本需大于R13,加上 -nodeps 就ok了

[root@izbp1e0h5tks006vnlaro4z tool]# rpm -ivh --nodeps --force rabbitmq-server-3.7.4-1.el7.noarch.rpm 
warning: rabbitmq-server-3.7.4-1.el7.noarch.rpm: Header V4 RSA/SHA1 Signature, key ID 6026dfca: NOKEY
Preparing...                          ################################# [100%]
Stopping rabbitmq-server (via systemctl):                  [  OK  ]
Updating / installing...
   1:rabbitmq-server-3.7.4-1.el7      ################################# [100%]
/etc/profile: line 78: /etc/profil: No such file or directory
warning: %post(rabbitmq-server-3.7.4-1.el7.noarch) scriptlet failed, exit status 1

上面的错误是因为配置文件 我修改了没有立即生效, PS: 需要在配置文件/etc/profile,中添加export PATH=$PATH:/usr/rabbitmq/sbin,保存并使文件生效: source /erc/profile;在重新安装一遍

[root@izbp1e0h5tks006vnlaro4z tool]#  rpm -ivh --nodeps --force rabbitmq-server-3.7.4-1.el7.noarch.rpm 
warning: rabbitmq-server-3.7.4-1.el7.noarch.rpm: Header V4 RSA/SHA1 Signature, key ID 6026dfca: NOKEY
Preparing...                          ################################# [100%]
Stopping rabbitmq-server (via systemctl):                  [  OK  ]
Updating / installing...
   1:rabbitmq-server-3.7.4-1.el7      ################################# [100%]

检查是否安装成功

[root@izbp1e0h5tks006vnlaro4z tool]# rabbitmqctl -q status

=ERROR REPORT==== 26-Apr-2018::14:30:34 ===
Loading of /usr/lib/rabbitmq/lib/rabbitmq_server-3.7.4/escript/rabbitmqctl/elixir.beam failed: badfile
Failed to start Elixir.
error: {error,
           {elixir,
               {bad_return,
                   {{elixir,start,[normal,[]]},
                    {'EXIT',
                        {undef,
                            [{elixir,start,[normal,[]],[]},
                             {application_master,start_it_old,4,
                                 [{file,"application_master.erl"},
                                  {line,269}]}]}}}}}}

打开服务:

[root@izbp1e0h5tks006vnlaro4z tool]# service rabbitmq-server start
Starting rabbitmq-server (via systemctl):  Job for rabbitmq-server.service failed because the control process exited with error code. See "systemctl status rabbitmq-server.service" and "journalctl -xe" for details.
                                                           [FAILED]

[root@izbp1e0h5tks006vnlaro4z tool]# systemctl status rabbitmq-server.service 
● rabbitmq-server.service - RabbitMQ broker
   Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; disabled; vendor preset: disabled)
   Active: activating (auto-restart) (Result: exit-code) since Thu 2018-04-26 15:09:49 CST; 6s ago
  Process: 27394 ExecStop=/usr/sbin/rabbitmqctl shutdown (code=exited, status=1/FAILURE)
  Process: 27208 ExecStart=/usr/sbin/rabbitmq-server (code=exited, status=1/FAILURE)
 Main PID: 27208 (code=exited, status=1/FAILURE)

Apr 26 15:09:49 izbp1e0h5tks006vnlaro4z systemd[1]: rabbitmq-server.service: control process exited, code=exited status=1
Apr 26 15:09:49 izbp1e0h5tks006vnlaro4z systemd[1]: Failed to start RabbitMQ broker.
Apr 26 15:09:49 izbp1e0h5tks006vnlaro4z systemd[1]: Unit rabbitmq-server.service entered failed state.
Apr 26 15:09:49 izbp1e0h5tks006vnlaro4z systemd[1]: rabbitmq-server.service failed.

猜你喜欢

转载自my.oschina.net/cqyj/blog/1801514