文章目錄
使用 dnf 升級 redis 版本
又到了定期 review 各環境中使用服務與軟體版本的時間,這次發現 production 的 redis 從安裝時的 6.0.14 至今皆未升級,內網環境因為之前調整機器有重新安裝過,已是 6.2.4 的版本,所以排定計劃要將 production redis 升級至 6.2.4 (最新版本為 6.2.5,但因未在內網做過功能驗證,故只升級至 6.2.4)
因為當時安裝 redis 用了 dnf module,讓更新的動作有些不同,為了節省日後要重新回憶的時間,快速筆記一下
基本環境說明
- Azure VM : 標準 B2s (2 個 vcpu,4 GiB 記憶體)
- OS image : CentOS 8.2 - Gen1
redis
- 6.0.14
- 6.2.24
相關安裝方式可以參考之前筆記 使用 dnf 安裝 Redis 6
dnf module enable -y redis:remi-6.0 && \ dnf install -y --enablerepo=remi redis-0:6.0.14-1.el8.remi.x86_64
升級步驟
最出所有 module stream
dnf module list redis
確認需要的版本在哪一個 stream
dnf module info redis:remi-*
重設 module
dnf module reset -y redis
未重設 module 直接使用其他 stream 的錯誤訊息
Last metadata expiration check: 0:13:56 ago on Mon 16 Aug 2021 02:23:18 AM UTC. Dependencies resolved. The operation would result in switching of module 'redis' stream 'remi-6.0' to stream 'remi-6.2' Error: It is not possible to switch enabled streams of a module. It is recommended to remove all installed content from the module, and reset the module using 'dnf module reset <module_name>' command. After you reset the module, you can install the other stream.
未重設 module 直接使用其他 stream 的錯誤截圖
重新啟用指定的 module stream
dnf module enable -y redis:remi-6.2
使用指定的 module stream 安裝指定本
指定版本的安裝方式,可以參考之前筆記 使用 dnf 透過 module 安裝指定版本套件
dnf install -y --enablerepo=remi redis-0:6.2.4-1.el8.remi.x86_64
實際效果
redis-cli --version && redis-server --version
心得
原本以為升級非常簡單,就是把 避免執行 dnf update 時連帶升級特定套件 解除,然後像以前 yum 一樣:執行 yum update redis
結果就如同筆記中提到的,因為用了 dnf module,而需要的版本又位於不同 stream 中,無法直接升級成指定版本,幸虧之前有花時間好好看了 dnf module 的使用方式,沒有卡住,但實在沒有信心下次遇到類似狀況還能快速搞定,還是先筆記一下準備拯救自己比較實在
參考資訊
文章作者 Yowko Tsai
上次更新 2021-08-15
授權合約
本部落格 (Yowko's Notes) 所有的文章內容(包含圖片),任何轉載行為,必須通知並獲本部落格作者 (Yowko Tsai) 的同意始得轉載,且轉載皆須註明出處與作者。
Yowko's Notes 由 Yowko Tsai 製作,以創用CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款 釋出。