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.