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
正式安裝配置
- 安裝 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
- 配置 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
- 清理并更新 yum 緩存
sudo yum clean all
sudo yum makecache
- 安裝 RabbitMQ
使用 yum 安裝 RabbitMQ:
sudo yum install -y rabbitmq-server
- 啟動 RabbitMQ 服務并設置開機自啟動
sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server
- 配置防火墻
確保防火墻允許 RabbitMQ 的端口(5672 和 15672):
sudo firewall-cmd --permanent --add-port=5672/tcp
sudo firewall-cmd --permanent --add-port=15672/tcp
sudo firewall-cmd --reload
- 啟用 RabbitMQ 管理插件
啟用 RabbitMQ 管理插件以便通過瀏覽器進行管理:
sudo rabbitmq-plugins enable rabbitmq_management
- 創建管理員用戶并配置權限
創建新的管理員用戶,以允許遠程訪問:
sudo rabbitmqctl add_user myuser mypassword
sudo rabbitmqctl set_user_tags myuser administrator
sudo rabbitmqctl set_permissions -p / myuser ".*" ".*" ".*"
- 配置環境變量(可選)
如果需要配置環境變量,編輯 ~/.bash_profile 或 ~/.bashrc 文件:
export PATH=$PATH:/usr/lib/rabbitmq/bin
然后應用更改:
source ~/.bash_profile
- 訪問 RabbitMQ 管理界面
在瀏覽器中訪問 http://<your_server_ip>:15672/,使用創建的用戶 myuser 和 mypassword 登錄。
通過這些步驟,你應該能夠在 CentOS 7.9 上成功安裝并配置 RabbitMQ 最新版本,并且能夠遠程訪問和管理 RabbitMQ 實例。如果在執行上述步驟時遇到問題,請檢查每個步驟的執行結果,并確保網絡連接正常。
下載延時插件
- 下載 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
- 將插件移動到 RabbitMQ 的插件目錄
將下載的插件文件移動到 RabbitMQ 的插件目錄:
sudo mv rabbitmq_delayed_message_exchange-3.11.4.ez /usr/lib/rabbitmq/lib/rabbitmq_server-3.12.13/plugins/
- 啟用插件
啟用 RabbitMQ 延遲消息插件:
sudo rabbitmq-plugins enable rabbitmq_delayed_message_exchange
- 重啟 RabbitMQ 服務
重啟 RabbitMQ 服務以應用更改:
sudo systemctl restart rabbitmq-server
- 驗證插件是否啟用
你可以使用以下命令查看啟用的插件列表,確保延遲消息插件已啟用:
sudo rabbitmq-plugins list
- 訪問 RabbitMQ 管理界面
在瀏覽器中訪問 http://<your_server_ip>:15672/,使用你的管理員用戶 myuser 和 mypassword 登錄,并驗證插件配置。