码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 编译安装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
    make clean
    ./configure --prefix=/usr/local/erlang
    make
    make install

    这个错误有参考价值,就拿过来记录下。虽然我在操作时也提示是这个问题,但并不是我编译安装的位置提示出来的!之前几个同事编译时未安装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
  • 相关阅读:
    lv4 嵌入式开发-4 标准IO的读写(二进制方式)
    地方院校C语言程序设计课程建设与实践
    Net 高级调试之十四:线程同步的基础知识和常见的同步原语
    通俗易懂生成对抗网络GAN原理
    linux小妙招(对比不同文件夹下的内容、kill掉后台运行的gdb进程)
    网络流问题
    深度学习的炼金术:转化数据为黄金的秘密
    概论_第2章随机变量及其概率分布__离散型随机变量之二项分布
    C++ Qt开发:QTcpSocket网络通信组件
    mac 卸载第三方输入法
  • 原文地址:https://www.cnblogs.com/hellxz/p/16697267.html
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号