• 编译安装Erlang+RabbitMQ


    楔子

    由于国内信创越来越火,客户现场也开始使用国产操作系统替换CentOS之类的开源操作系统,最近做实施的同事找到我,说现场是ARM架构的操作系统编译安装RabbitMQ一直提示无法启动也没有日志文件生成,找过了好几个同事都没解决这才找到我。我就在这里记录下安装步骤及碰到的问题与解决办法。

    环境说明

    名称版本
    麒麟操作系统V10系统 飞腾版 ARM 64位架构
    Linux内核4.19.90-24.4.v2101.ky10.aarch64
    Erlang24.2
    RabbitMQ3.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
    
    • 1

    安装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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    安装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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    启动RabbitMQ

    # 后台启动
    rabbitmq-server -detached
    # 查看状态
    rabbitmqctl status
    # 启用管理插件
    rabbitmq-plugins enable rabbitmq_management
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    初始化用户

    # 添加用户 用户名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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    重启后访问 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}}})
    
    • 1
    • 2

    提示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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    这个错误有参考价值,就拿过来记录下。虽然我在操作时也提示是这个问题,但并不是我编译安装的位置提示出来的!之前几个同事编译时未安装openssl,编译出有问题的Erlang并放到了环境变量很靠前的位置,导致我编译正确的Erlang没被执行。。所以在这里我推荐大家编译安装后用which查一下你的命令是从哪响应的。

    参考:

    • https://github.com/erlang/otp
    • https://www.rabbitmq.com/install-generic-unix.html
    • https://www.rabbitmq.com/which-erlang.html
    • https://blog.csdn.net/weixin_42831477/article/details/113581383
  • 相关阅读:
    CSS 网格容器:构建响应式网页布局的强大工具
    element-ui日期选择器el-date-picker, 案例:填写有效期和选择开始时间后, 自动生成结束时间, datetime时间转换
    神经网络预测结果都一样,神经网络怎么预测数据
    高中数学:三角恒等变换-两角和与差的变形公式
    mysql表的导出和导入
    ESP8266-01S + Arduino 接入阿里云物联网平台
    新书速览|解密AI绘画与修图: Stable Diffusion+Photoshop
    JavaWeb开发之——DML-操作数据-添加修改及删除(11)
    微服务生态系统:使用Spring Cloud构建分布式系统
    7种方法教你如何解决msvcp140_1.dll丢失问题,一键修复dll丢失问题
  • 原文地址:https://blog.csdn.net/u012586326/article/details/126875478