编译安装Erlang+RabbitMQ
楔子
由于国内信创越来越火,客户现场也开始使用国产操作系统替换CentOS之类的开源操作系统,最近做实施的同事找到我,说现场是ARM架构的操作系统编译安装RabbitMQ一直提示无法启动也没有日志文件生成,找过了好几个同事都没解决这才找到我。我就在这里记录下安装步骤及碰到的问题与解决办法。
环境说明
名称 | 版本 |
---|---|
麒麟操作系统 | V10系统 飞腾版 ARM 64位架构 |
Linux内核 | 4.19.90-24.4.v2101.ky10.aarch64 |
Erlang | 24.2 |
RabbitMQ | 3.9.1 unix通用版本 |
- 关于RabbitMQ与Erlang版本对应关系,参见:https://www.rabbitmq.com/which-erlang.html
- Erlang源码安装包下载地址:https://github.com/erlang/otp/releases
- RabbitMQ源码安装包下载地址:https://github.com/rabbitmq/rabbitmq-server/releases
安装基础编译环境
yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl gtk2-devel binutils-devel
安装Erlang
# 解压erlang源码包到/usr/local/otp_src_24.2 tar -zxvf otp_src_24.2.tar.gz -C /usr/local # 进入erlang源码编译目录 cd /usr/local/otp_src_24.2/ # 创建安装目录 mkdir /usr/local/erlang # 检查编译环境,设置安装目录 ./configure --prefix=/usr/local/erlang # 编译 & 安装 make make install # 将编译安装的erlang加入环境变量,并使之生效(无需进入目录即可执行) echo 'export PATH=$PATH:/usr/local/erlang/bin' >> /etc/profile source /etc/profile # 查看是否安装成功 erl -version
安装RabbitMQ
# 解压rabbitmq安装包 tar -xvf rabbitmq-server-generic-unix-3.9.1.tar.xz # 移动rabbitmq目录到/usr/local/rabbitmq mv rabbitmq-server-generic-unix-3.9.1 /usr/local/rabbitmq # 将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
初始化用户
# 添加用户 用户名admin 密码123456 ,密码可以自己指定 rabbitmqctl add_user admin 123456 # 给budget分配vhost rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*" # 分配管理权限 rabbitmqctl set_user_tags admin administrator # 重启rabbitmq 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 <Erlang编译目录> make clean ./configure --prefix=/usr/local/erlang make make install
这个错误有参考价值,就拿过来记录下。虽然我在操作时也提示是这个问题,但并不是我编译安装的位置提示出来的!之前几个同事编译时未安装openssl,编译出有问题的Erlang并放到了环境变量很靠前的位置,导致我编译正确的Erlang没被执行。。所以在这里我推荐大家编译安装后用which查一下你的命令是从哪响应的。
参考:
本文作者:东北小狐狸
本文链接:https://www.cnblogs.com/hellxz/p/16697267.html
版权声明:本作品采用自由转载-非商用-非衍生-保持署名 (CC BY-NC-ND 3.0)许可协议进行许可。
分类:
Linux
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
2020-09-15 布鲁斯口琴进阶教程资料分享