005 CentOS 7.9 RabbitMQ安装及配置

https://github.com/rabbitmq/rabbitmq-server/releases
https://www.rabbitmq.com/docs/download
https://packagecloud.io/rabbitmq/rabbitmq-server
https://www.erlang-solutions.com/downloads/

https://www.erlang.org/

文章目录

    • 卸载erl
    • erl版本安装与下载版本不匹配
    • 正式安装配置
    • 下载延时插件

卸载erl

在 CentOS 7.9 上卸载 Erlang 并清除缓存,您可以按照以下步骤操作:

卸载 Erlang
卸载 Erlang 软件包:
打开终端,并使用以下命令卸载 Erlang:

sudo yum remove erlang

如果有其他与 Erlang 相关的软件包,您也可以使用 yum 将其卸载。

卸载 Erlang Solutions 仓库(如果已安装):
如果您之前添加了 Erlang Solutions 仓库,您也可以将其卸载:

sudo yum remove erlang-solutions-repo

清除缓存
在卸载 Erlang 之后,您可能还想要清除 yum 缓存和其他相关缓存。

清除 YUM 缓存:
使用以下命令来清除 yum 缓存:

sudo yum clean all

这个命令会清除所有已下载的包和旧的 headers。

删除缓存的 RPM 文件:
如果您还想删除 /var/cache/yum 目录下缓存的 RPM 文件,可以使用:

sudo rm -rf /var/cache/yum

注意:这将删除所有 yum 缓存的 RPM 包,不仅仅是与 Erlang 相关的。

删除其他可能的 Erlang 遗留文件:
有时,卸载过程可能不会删除所有的配置文件或数据文件。如果您想彻底删除 Erlang 的所有痕迹,可以手动检查并删除这些文件。例如:

sudo find / -name "*erlang*" -type f -delete

警告:这个 find 命令非常强大,并且如果使用不当可能会删除重要文件。请务必谨慎使用,并确保您知道自己在做什么。通常,只删除 /etc/ 和 /var/ 下的 Erlang 配置文件就足够了。

验证卸载
完成上述步骤后,您可以使用以下命令来验证 Erlang 是否已成功卸载:

erl -version

如果 Erlang 已成功卸载,该命令应该会显示一个错误消息,指示 erl 命令未找到。

which erl 
yum list installed | grep erlang
sudo yum remove $(yum list installed | grep erlang | awk '{print $1}')

这个命令的工作原理如下:

yum list installed | grep erlang:列出所有已安装的包,并通过 grep 过滤出包含 “erlang” 的包。
awk ‘{print $1}’:使用 awk 提取每行的第一个字段,即包名。
$(…):命令替换,执行括号内的命令,并将其输出作为外部命令的参数。
sudo yum remove:使用提取出的包名列表作为参数,执行卸载操作。
请注意,在执行此命令之前,请确保理解其将卸载所有与 Erlang 相关的包,并且这可能对依赖 Erlang 的其他软件或服务产生影响。

为了确认 Erlang 是否已经完全卸载,你可以按照以下步骤操作:

检查 Erlang 包是否已安装:
你可以再次运行 yum list installed | grep erlang 来确认是否还有 Erlang 相关的包被安装。
检查 /usr/bin/erl 文件:
既然错误信息提示 /usr/bin/erl 找不到,你可以确认一下这个文件是否真的不存在了,使用 ls /usr/bin/erl 命令查看。
清除 shell 的哈希表:
如果你的 shell 是 bash,运行 hash -r 可以清除已缓存的命令位置,这样当你再次尝试运行 erl 时,shell 会重新搜索 PATH 环境变量中指定的目录来找到该命令。
检查 PATH 环境变量:
确认你的 PATH 环境变量中没有包含指向已卸载 Erlang 的路径。你可以通过 echo $PATH 来查看当前的 PATH 设置。
重启终端或系统:
有时简单地重启你的终端会话或整个系统可以清除任何残留的引用或缓存。
检查其他配置文件:
有时 .bashrc、.bash_profile、.profile 或其他 shell 初始化脚本中可能包含了对 Erlang 的引用。检查这些文件,并删除或注释掉任何与 Erlang 相关的行。
如果你完成了上述步骤,并且确认 Erlang 已经完全从你的系统中移除,但问题仍然存在,那么可能是其他系统配置或第三方软件导致的问题。不过,通常情况下,清除 shell 的哈希表和检查环境变量就可以解决问题。

rpm -ql esl-erlang _25.0.3_1~centos~7_x86_64.rpm | grep erl
ls /usr/lib64/erlang
ls /usr/local/lib/erlang
export ERLANG_HOME=/usr/lib64/erlang  
export PATH=$PATH:$ERLANG_HOME/bin
sudo find / -name "*erlang*"
#这里的 -exec 选项允许你对 find 命令找到的每个文件或目录执行指定的命令。在这个例子中,rm -rf {} 是被执行的命令,其中 {} 是一个占位符,代表 find 命令找到的每个文件或目录的路径。\; 表示 -exec 参数的结束。sudo find / -name "*erlang*" -exec rm -rf {} \;

确定Shell类型

echo $SHELL

编辑对应的Shell配置文件:
如果使用的是 bash,可以编辑 bash_completion.sh 或创建一个新的 .sh 脚本(例如 erlang.sh)来设置Erlang相关的环境变量。
如果使用的是 csh 或 tcsh,可以编辑 csh.local 或创建一个新的 .csh 脚本。
设置Erlang环境变量:
在选定的脚本文件中,需要添加Erlang的环境变量。例如,如果Erlang安装在 /usr/lib64/erlang,可以添加如下内容:
对于 bash:

export ERLANG_HOME=/usr/lib64/erlang  
export PATH=$PATH:$ERLANG_HOME/bin

对于 csh 或 tcsh:

setenv ERLANG_HOME /usr/lib64/erlang  
set path = ($path $ERLANG_HOME/bin)

使配置生效:
对于 bash,可以通过运行 source /etc/profile.d/脚本名.sh 或重新打开一个终端窗口来使更改生效。
对于 csh 或 tcsh,运行 source /etc/profile.d/脚本名.csh 或重新打开终端。

测试Erlang:
输入 erl 来测试Erlang是否能够正确启动。
请注意,如果Erlang安装在非标准路径下,需要确保该路径是正确的,并将其替换到上述环境变量设置中。

如果不确定Erlang的确切安装位置,可以使用之前提到的 find 命令来搜索 erl 可执行文件的位置,或者使用 rpm -ql 命令来列出Erlang软件包的安装文件,从而确定其安装路径。

此外,如果系统是多用户环境,建议在用户的个人Shell配置文件中设置这些环境变量(如 ~/.bashrc、~/.bash_profile、~/.cshrc 等),以避免影响其他用户的环境。如果您是系统管理员,并且希望为所有用户设置这些环境变量,则可以按照上述步骤在 /etc/profile.d/ 目录下进行操作。

erl版本安装与下载版本不匹配

如果您已经下载了Erlang 26的版本,并且确信安装过程中没有出现问题,但erl -version命令仍然显示Erlang版本为14.2.5,那么可能是以下几个原因导致的:

多个Erlang版本冲突:您的系统中可能安装了多个版本的Erlang,而erl命令可能仍然指向旧版本的Erlang。
环境变量未正确设置:尽管您在.bashrc中添加了Erlang 26的bin目录到PATH环境变量,但这个变更可能没有被正确应用,或者您可能在另一个shell环境中,该环境没有加载新的.bashrc设置。
安装问题:Erlang 26可能没有正确安装,或者安装后的可执行文件没有被放置在预期的目录中。
为了解决这个问题,您可以尝试以下步骤:

确认Erlang 26的安装位置:检查Erlang 26是否确实安装在/usr/tools/erlang目录下。您可以通过ls /usr/tools/erlang命令来确认。
检查PATH环境变量:在终端中输入echo $PATH来检查当前的PATH环境变量。确保/usr/tools/erlang/bin在PATH中的位置优先于旧版本Erlang的路径。
重新加载.bashrc:如果您在.bashrc中做了更改,可以尝试重新加载它,方法是运行source ~/.bashrc或者在新的终端会话中检查。
使用绝对路径运行Erlang:尝试使用Erlang 26的绝对路径来运行erl -version,例如/usr/tools/erlang/bin/erl -version,以确认是否是路径问题。
卸载旧版本的Erlang:如果系统中存在多个Erlang版本,并且您确定不再需要旧版本,可以考虑卸载它,以避免任何混淆。
重新登录或重启:有时候,简单地重新登录您的用户账户或重启系统可以确保所有的环境变量更改生效。

# 查找并删除可能存在的Erlang相关的其他文件和目录  
sudo find / -name "*erlang*" -type d -exec rm -rf {} +
使用软链接:
如果 RabbitMQ 的安装脚本无法识别非标准路径下的 Erlang,您可以尝试在 /usr/bin 或其他在系统 PATH 中的目录下创建指向 /usr/tools/erlang/bin/erl 的软链接。例如:
bash
sudo ln -s /usr/tools/erlang/bin/erl /usr/bin/erl

正式安装配置

  1. 安装 Erlang
    确保移除旧版本的 Erlang(如果有),然后安装最新的符合 RabbitMQ 版本要求的 Erlang:
sudo yum remove erlang
sudo yum install -y epel-release
sudo yum install -y https://packages.erlang-solutions.com/erlang-solutions-2.0-1.noarch.rpm
sudo yum install -y erlang
  1. 配置 yum 仓库
    创建 yum 仓库配置文件来确保使用官方仓库:
sudo vi /etc/yum.repos.d/rabbitmq_erlang.repo

添加以下内容:

[rabbitmq_erlang]
name=RabbitMQ Erlang Repository
baseurl=https://packages.erlang-solutions.com/rpm/centos/7/x86_64/
gpgcheck=1
gpgkey=https://packages.erlang-solutions.com/rpm/erlang_solutions.asc
enabled=1[rabbitmq_rabbitmq-server]
name=RabbitMQ Server
baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/7/$basearch
gpgcheck=1
gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
enabled=1
  1. 清理并更新 yum 缓存
sudo yum clean all
sudo yum makecache
  1. 安装 RabbitMQ
    使用 yum 安装 RabbitMQ:
sudo yum install -y rabbitmq-server
  1. 启动 RabbitMQ 服务并设置开机自启动
sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server
  1. 配置防火墙
    确保防火墙允许 RabbitMQ 的端口(5672 和 15672):
sudo firewall-cmd --permanent --add-port=5672/tcp
sudo firewall-cmd --permanent --add-port=15672/tcp
sudo firewall-cmd --reload
  1. 启用 RabbitMQ 管理插件
    启用 RabbitMQ 管理插件以便通过浏览器进行管理:
sudo rabbitmq-plugins enable rabbitmq_management
  1. 创建管理员用户并配置权限
    创建新的管理员用户,以允许远程访问:
sudo rabbitmqctl add_user myuser mypassword
sudo rabbitmqctl set_user_tags myuser administrator
sudo rabbitmqctl set_permissions -p / myuser ".*" ".*" ".*"
  1. 配置环境变量(可选)
    如果需要配置环境变量,编辑 ~/.bash_profile 或 ~/.bashrc 文件:
export PATH=$PATH:/usr/lib/rabbitmq/bin

然后应用更改:

source ~/.bash_profile
  1. 访问 RabbitMQ 管理界面
    在浏览器中访问 http://<your_server_ip>:15672/,使用创建的用户 myuser 和 mypassword 登录。

通过这些步骤,你应该能够在 CentOS 7.9 上成功安装并配置 RabbitMQ 最新版本,并且能够远程访问和管理 RabbitMQ 实例。如果在执行上述步骤时遇到问题,请检查每个步骤的执行结果,并确保网络连接正常。

下载延时插件

  1. 下载 RabbitMQ 延迟消息插件
    从 RabbitMQ 的 GitHub 页面下载插件:
    https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases
wget https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/v3.11.4/rabbitmq_delayed_message_exchange-3.11.4.ez
  1. 将插件移动到 RabbitMQ 的插件目录
    将下载的插件文件移动到 RabbitMQ 的插件目录:
sudo mv rabbitmq_delayed_message_exchange-3.11.4.ez /usr/lib/rabbitmq/lib/rabbitmq_server-3.12.13/plugins/
  1. 启用插件
    启用 RabbitMQ 延迟消息插件:
sudo rabbitmq-plugins enable rabbitmq_delayed_message_exchange
  1. 重启 RabbitMQ 服务
    重启 RabbitMQ 服务以应用更改:
sudo systemctl restart rabbitmq-server
  1. 验证插件是否启用
    你可以使用以下命令查看启用的插件列表,确保延迟消息插件已启用:
sudo rabbitmq-plugins list
  1. 访问 RabbitMQ 管理界面
    在浏览器中访问 http://<your_server_ip>:15672/,使用你的管理员用户 myuser 和 mypassword 登录,并验证插件配置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/20549.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI技术的深度探索:重塑未来的智能引擎

随着科技的迅猛进步&#xff0c;人工智能&#xff08;AI&#xff09;技术已经逐渐渗透到我们生活的每一个角落&#xff0c;从简单的智能助手到复杂的决策支持系统&#xff0c;AI技术以其独特的方式和前所未有的速度改变着我们的世界。本文将对AI技术进行深入探讨&#xff0c;从…

开源贡献 | 基于长安链去中心化数字身份合约标准协议(CMDID-1)的DID

DID为每个实体&#xff08;人、组织、物品等&#xff09;提供了一个唯一的全球身份标识符&#xff0c;让用户可以控制和管理的自己的数字身份&#xff0c;并在使用时以最小化的方式出示&#xff0c;将数据所有权归还用户的同时以区块链技术保证了身份的不可篡改性&#xff0c;以…

LeetCode875爱吃香蕉的阿珂

题目描述 珂珂喜欢吃香蕉。这里有 n 堆香蕉&#xff0c;第 i 堆中有 piles[i] 根香蕉。警卫已经离开了&#xff0c;将在 h 小时后回来。珂珂可以决定她吃香蕉的速度 k &#xff08;单位&#xff1a;根/小时&#xff09;。每个小时&#xff0c;她将会选择一堆香蕉&#xff0c;从…

IntelliJ IDEA / Android Studio 方法显示Git提交人

显示方法&#xff1a; 设置 > 编辑器 > 嵌入提示 > Code Vision > 代码作者&#xff08;勾选&#xff09; IntelliJ IDEA Android Studio

springboot编写日志环境搭建过程

AOP记录日志 AOP记录日志的主要优点包括&#xff1a; 1、低侵入性&#xff1a;AOP记录日志不需要修改原有的业务逻辑代码&#xff0c;只需要新增一个切面即可。 2、统一管理&#xff1a;通过AOP记录日志可以将各个模块中需要记录日志的部分进行统一管理&#xff0c;降低了代…

神经网络的工程基础(二)——随机梯度下降法|文末送书

相关说明 这篇文章的大部分内容参考自我的新书《解构大语言模型&#xff1a;从线性回归到通用人工智能》&#xff0c;欢迎有兴趣的读者多多支持。 本文涉及到的代码链接如下&#xff1a;regression2chatgpt/ch06_optimizer/stochastic_gradient_descent.ipynb 本文将讨论利用…

WinApp自动化测试之辅助工具介绍

前篇文章中&#xff0c;我们简单介绍了部分WinApp自动化测试脚本常规操作&#xff0c;今天我们来讲剩余的部分。 文件批量上传 文件批量上传和文件单个上传原理是相同的&#xff0c;单个上传直接传入文件路径即可&#xff0c;批量上传需要进入批量上传的文件所在目录&#xf…

Redis到底是AP还是CP?

这个问题差评&#xff0c;没问清楚。当然&#xff0c;网上一搜&#xff0c;各种各样的狗屁答案都有&#xff0c;有时候是AP的&#xff0c;有时候是CP的&#xff0c;薛定谔的Redis。 好的&#xff0c;那应该怎么问呢&#xff1f;Q1.Redis Cluster集群是AP还是CP&#xff1f; A…

uniapp创建支付密码实现(初始密码,第二次密码)

示例&#xff1a; 插件地址&#xff1a;自定义数字/身份证/密码输入框&#xff0c;键盘密码框可分离使 - DCloud 插件市场 1.下载插件并导入HBuilderX&#xff0c;找到文件夹&#xff0c;copy number-keyboard.vue一份为number-keyboard2.vue&#xff08;number-keyboard.vue是…

C++ STL map容器erase操作避坑

map容器的erase方法有三种重载形式&#xff1a; //1.删除迭代器所指向的元素 //返回值是指向下一个节点的迭代器 iterator erase(iterator it); //2.区间删除 iterator erase(iterator first, iterator last); //3.根据键值删除 //返回值为删除的元素个数 size_type erase(con…

民国漫画杂志《时代漫画》第37期.PDF

时代漫画37.PDF: https://url03.ctfile.com/f/1779803-1248636302-c017ee?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了&#xff0c;截止1937年6月战争来临被迫停刊共发行了39期。 ps: 资源来源网络!

C++基础编程100题-002 OpenJudge-1.1-04 输出保留3位小数的浮点数

更多资源请关注纽扣编程微信公众号 002 OpenJudge-1.1-04 输出保留3位小数的浮点数 http://noi.openjudge.cn/ch0101/04/ 描述 读入一个单精度浮点数&#xff0c;保留3位小数输出这个浮点数。 输入 只有一行&#xff0c;一个单精度浮点数。 输出 也只有一行&#xff0c;…

块设备层保序操作分析

Q:块设备层保序功能的作用? A:通用块层可以提交一个带保序标签(BIO_RW_BARRIER)的BIO到IO请求队列,块设备层可以保证在保序BIO之前提交的BIO都先于BIO执行且抵达存储介质;保序BIO执行完毕后,它需要写入的数据必定已经抵达存储介质;在保序IO之后提交的BIO都晚于保序BIO执行,确保…

07.爬虫---使用session发送请求

07.使用session发送请求 1.目标网站2.代码实现 1.目标网站 我们以这个网站作为目标网站 http://www.360doc.com/ 注册用户 注册后从登录界面获取到这些信息 2.代码实现 import requestssession requests.Session() url http://www.360doc.com/ajax/login/login.ashx u…

深入剖析Java线程池的核心概念与源码解析:从Executors、Executor、execute逐一揭秘

文章目录 文章导图前言Executors、Executor、execute对比剖析Executors生成的线程池&#xff1f;线程池中的 execute 方法execute 方法的作用execute的工作原理拒绝策略 源码分析工作原理基本知识线程的状态线程池的状态线程池状态和线程状态总结线程池的状态信息和线程数量信息…

RedisSearch与Elasticsearch:技术对比与选择指南

码到三十五 &#xff1a; 个人主页 数据时代&#xff0c;全文搜索已经成为许多应用程序中不可或缺的一部分。RedisSearch和Elasticsearch是两个流行的搜索解决方案&#xff0c;它们各自具有独特的特点和优势。本文简单探讨一些RedisSearch和Elasticsearch之间的技术差异。 目录…

9款实用而不为人知的小众软件推荐!

AI视频生成&#xff1a;小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频https://aitools.jurilu.com/ 在电脑软件的浩瀚海洋中&#xff0c;除了那些广为人知的流行软件外&#xff0c;还有许多简单、干净、功能强大且注重实用功能的小众软件等待我们…

[NISACTF 2022]sign_crypto(LATEX)

题目&#xff1a; 我们看出这是LATEX编码&#xff0c;破解之后&#xff1a; 看出每个“\”之后的第一个字母连起来即使&#xff1a;nss....&#xff0c;在大写即可得到flag。

linux各个日志的含义 以及使用方法

在Linux系统上&#xff0c;系统日志文件通常存储在/var/log/目录下。可以通过查看这些日志文件来了解系统的操作记录、错误信息和其他相关信息。以下是一些常见的系统日志文件以及它们包含的信息&#xff1a; /var/log/messages&#xff1a;这是一个常见的系统日志文件&#xf…

Sui Nami Bags对NFT使用案例进行创新

在四月的Sui Basecamp活动中&#xff0c;与会者体验了一系列Sui技术&#xff0c;这些技术以Nami Bags的形式呈现&#xff0c;这些数字礼包里满是来自Sui生态的NFT和优惠券。通过Enoki&#xff08;Mysten Labs的新客户参与平台&#xff09;提供支持&#xff0c;即使没有加密钱包…