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.pswp.cn/bicheng/20549.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/20549.shtml
英文地址,請注明出處:http://en.pswp.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;即使沒有加密錢包…