楔子
由于国内信创越来越火,客户现场也开始使用国产操作系统替换CentOS之类的开源操作系统,最近做实施的同事找到我,说现场是ARM架构的操作系统编译安装RabbitMQ一直提示无法启动也没有日志文件生成,找过了好几个同事都没解决这才找到我。我就在这里记录下安装步骤及碰到的问题与解决办法。
环境说明
名称 |
版本 |
麒麟操作系统 |
V10系统 飞腾版 ARM 64位架构 |
Linux内核 |
4.19.90-24.4.v2101.ky10.aarch64 |
Erlang |
24.2 |
RabbitMQ |
3.9.1 unix通用版本 |
安装基础编译环境
| yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl gtk2-devel binutils-devel |
安装Erlang
| |
| tar -zxvf otp_src_24.2.tar.gz -C /usr/local |
| |
| cd /usr/local/otp_src_24.2/ |
| |
| mkdir /usr/local/erlang |
| |
| ./configure --prefix=/usr/local/erlang |
| |
| make |
| make install |
| |
| echo 'export PATH=$PATH:/usr/local/erlang/bin' >> /etc/profile |
| source /etc/profile |
| |
| erl -version |
安装RabbitMQ
| |
| tar -xvf rabbitmq-server-generic-unix-3.9.1.tar.xz |
| |
| mv rabbitmq-server-generic-unix-3.9.1 /usr/local/rabbitmq |
| |
| echo 'export PATH=$PATH:/usr/local/rabbitmq/sbin' >> /etc/profile |
| source /etc/profile |
启动RabbitMQ
| |
| rabbitmq-server -detached |
| |
| rabbitmqctl status |
| |
| rabbitmq-plugins enable rabbitmq_management |
初始化用户
| |
| rabbitmqctl add_user admin 123456 |
| |
| rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*" |
| |
| rabbitmqctl set_user_tags admin administrator |
| |
| rabbitmqctl stop && rabbitmq-server -detached |
重启后访问 15672 端口进入Web管理界面,安装与初始化部署到这里就结束了,下边记录些错误情况
遇到的问题
执行 rabbitmq-server 报如下错误:
| {"init terminating in do_boot",{error,{crypto,{"no such file or directory","crypto.app"}}}} |
| init terminating in do_boot ({error,{crypto,{no such file or directory,crypto.app}}}) |
提示crypto库找不到,原因是在编译Erlang时crypto依赖的openssl库没找到。
解决办法:安装 openssll、openssl-devel,重新编译安装
| yum install -y openssl openssl-devel |
| cd |
| make clean |
| ./configure --prefix=/usr/local/erlang |
| make |
| make install |
这个错误有参考价值,就拿过来记录下。虽然我在操作时也提示是这个问题,但并不是我编译安装的位置提示出来的!之前几个同事编译时未安装openssl,编译出有问题的Erlang并放到了环境变量很靠前的位置,导致我编译正确的Erlang没被执行。。所以在这里我推荐大家编译安装后用which查一下你的命令是从哪响应的。
参考: