Linux RPM 套件安裝教學|rpm 指令安裝、移除、更新完整步驟
在 Red Hat、CentOS、Fedora 呢類 Linux 系統上面,幾乎所有軟件都靠 RPM(Red Hat Package Manager)去安裝同管理。學識 rpm 指令,就等於掌握咗系統維護嘅一把萬用鑰匙。以下由零開始,帶你行一次安裝、查詢、移除、更新同驗證嘅完整流程。
重點摘要
- 安裝用
rpm -ivh 套件.rpm:i安裝、v顯示過程、h顯示進度條。 - 查詢用
rpm -qa列出所有已裝套件,rpm -qi睇詳細資訊。 - 移除用
rpm -e 套件名,移除前先用-q查清楚正確名稱。 - 更新用
rpm -Uvh 套件.rpm,未裝過都會自動幫你安裝。 - 遇到相依性錯誤,先補齊依賴套件,
--nodeps只係最後手段。
痛點分析:新手最常撞板嘅幾個位
好多人第一次接觸 RPM,最頭痕嘅唔係指令本身,而係以下幾種情況:
第一,相依性地獄。你想裝 A 套件,佢話要先有 B,你裝 B 又話要 C,一層扣一層,最後成個人都亂晒。
第二,指令參數記唔清。-i、-U、-e、-q 各有用途,再加埋 -v、-h、--force、--nodeps 呢啲附加選項,新手好容易撈亂。
第三,硬用 --force 或者 --nodeps 硬裝。表面上裝得到,但係之後套件行唔起、系統出怪錯,先發現原來係當初跳過咗檢查。
第四,唔識查資料。裝完之後唔知檔案去咗邊、唔知某個檔屬邊個套件,一有問題就無從入手。
解決方案:五種操作模式一次睇清
RPM 一共有五種操作模式:安裝、查詢、移除、更新、驗證。掌握呢五個就足以應付日常維護。
安裝(Install)
```bash
基本安裝
rpm -i example.rpm
顯示安裝緊嘅檔案資訊
rpm -iv example.rpm
顯示檔案資訊 + 進度條(最常用)
rpm -ivh example.rpm ```
rpm -ivh 係最常見寫法,安裝時會見到 Preparing... 同一條 #### 進度條,一睇就知去到邊。
查詢(Query)
```bash
列出所有已安裝套件,配合 grep 搵目標
rpm -qa | grep tomcat
睇 .rpm 安裝檔嘅資訊(未裝)
rpm -qip example.rpm
睇某個檔案屬邊個套件
rpm -qf /bin/df
列出套件裝咗邊啲檔案、去咗邊個目錄
rpm -ql tomcat ```
附加字母好易記:a 係全部(all)、i 係資訊(info)、l 係檔案清單(list)、p 指向安裝檔(package)、f 指向已安裝檔案(file)。
移除(Erase)
```bash
移除前先查正確名稱
rpm -qa | grep tomcat
再移除
rpm -e tomcat ```
更新(Upgrade)
```bash rpm -Uvh example.rpm ```
-U 好貼心:如果套件已經裝咗,佢會幫你升級;如果未裝過,佢會直接安裝。所以好多人習慣一律用 -U 代替 -i。
驗證(Verify)
```bash rpm -Vf /etc/tomcat/tomcat.conf ```
輸出如果係 S.5....T c,代表:S 檔案大小改過、5 MD5 校驗值變咗、T 修改時間變咗、尾嘅 c 代表呢個係設定檔(config)。想睇齊全部代碼意思,man rpm 有詳細解釋。
常用附加選項
--nodeps:忽略相依性繼續安裝(慎用)--force:強制安裝,等於--replacefiles加--replacepkgs--replacefiles:覆蓋已存在嘅檔案--test:只測試可唔可以安裝,唔會真係裝落去--prefix NEWPATH:安裝去指定目錄--requires:顯示套件嘅相依關係
相依性報錯搞到頭都大?唔想硬 --force 搞爛個系統?
套件裝極都話缺依賴、亂用 --nodeps 之後行唔起?維修快提供 Linux 系統上門檢查同套件排錯服務,上門檢查費 HK$200 起,絕無隱藏收費,幫你安全裝返好。
維修實錄:一次相依性地獄嘅實戰排錯
呢單嘢我印象好深。客戶係一間細公司,佢哋部 CentOS 舊伺服器要裝返個舊版本嘅監控工具,供應商淨係俾咗一個 .rpm 檔,冇任何安裝說明。同事試咗自己裝,一路撞板,最後打嚟搵我上門。
我一坐低就照慣例,第一步唔係急住裝,而係查。我先跑 rpm -qip 目標套件.rpm,睇清楚呢個套件嘅版本、發行商同摘要,確認佢真係啱部機嘅架構(i386 定 x86_64)。呢步好關鍵,好多人裝唔到,其實純粹係下載錯咗架構嘅套件。
跟住我試 rpm -ivh 目標套件.rpm,果然彈出 Failed dependencies,話缺兩個依賴庫。呢個位就係新手最容易做錯決定嘅地方——好多人見到報錯就直接 --nodeps 硬裝落去。我同客戶講得好清楚:唔可以咁做。強行跳過相依性檢查,套件係裝到,但係一運行就會因為搵唔到對應嘅共享庫而 crash,到時更難搞。
我嘅做法係逐層拆解。先用 rpm -qpR 目標套件.rpm 列出佢完整嘅相依清單,再用 rpm -q 依賴名 逐個確認系統到底裝咗未。查出真正缺嘅只有兩個底層庫,其中一個系統其實已經有較新版本,得返一個真係要補。我搵返啱架構、啱版本嘅依賴 .rpm,先裝好佢,再返轉頭跑 rpm -Uvh 目標套件.rpm。呢次進度條一條過走到底,[100%] 亮起,冇任何 warning。
裝完我仲做多一步驗證:rpm -V 套件名 確認冇檔案被異常改動,再用 rpm -ql 套件名 睇清楚啲執行檔同設定檔真係去晒應該去嘅目錄。最後開返個 service 試跑,一切正常。 如果遇到訊號干擾或安裝位置較複雜嘅情況,建議交由專業天線安裝團隊跟進,確保接收穩定同長遠使用更安心。
臨走前我同客戶交低一句實用嘅嘢:以後同一部機再裝新版本,直接用 rpm -Uvh 就得,佢會自動升級唔使你手動移除舊版;真係要退返出嚟,就先 rpm -qa | grep 關鍵字 查正確名稱,再 rpm -e 移除,唔好靠估。成單處理落嚟大約一個鐘,關鍵唔在快,而在於每一步都查清楚、唔亂用強制參數。維修快對呢類系統排錯工作,會就我哋自己完成嘅安裝同設定提供合理保養期,客戶之後有相關問題可以直接搵返我哋跟進。
比較表格:常用 rpm 指令一覽
| 操作 | 指令 | 用途說明 |
|---|---|---|
| 安裝 | rpm -ivh 套件.rpm | 安裝並顯示進度條 |
| 查詢已裝 | rpm -qa | 列出所有已安裝套件 |
| 查套件資訊 | rpm -qi 套件名 | 顯示版本、發行商等資訊 |
| 查檔案歸屬 | rpm -qf /路徑/檔案 | 睇某檔案屬邊個套件 |
| 查檔案清單 | rpm -ql 套件名 | 列出套件安裝咗嘅檔案 |
| 移除 | rpm -e 套件名 | 卸載指定套件 |
| 更新/升級 | rpm -Uvh 套件.rpm | 有就升級,冇就安裝 |
| 驗證 | rpm -V 套件名 | 檢查檔案有冇被改動 |
| 測試安裝 | rpm -ivh 套件.rpm --test | 唔真裝,只測可行性 |
常見問題 FAQ
問:rpm -i 同 rpm -U 有咩分別?
答:-i 純粹係安裝,如果套件已經裝咗就會報錯。-U 就聰明啲,已裝就升級,未裝就直接安裝,所以多數人日常都用 -U。
問:安裝時彈 Failed dependencies 點算?
答:代表缺咗相依套件。正路做法係先用 rpm -qpR 套件.rpm 查出缺咩,再逐個補齊依賴後重試。唔建議用 --nodeps 硬跳過,咁樣裝完套件好大機會行唔起。
問:--force 係咪萬能,撞板就用佢?
答:唔係。--force 只係強制覆蓋檔案同重裝,佢唔會幫你解決缺依賴嘅根本問題。亂用只會遮蓋問題,最後令系統更加難維護,屬於最後手段。
問:點樣知某個檔案係邊個套件安裝出嚟?
答:用 rpm -qf /路徑/檔案。例如 rpm -qf /bin/df 就會話你知 /bin/df 屬邊個套件,方便你追蹤同排錯。
問:rpm 同 yum/dnf 有咩關係?
答:rpm 係底層工具,只處理單個套件,唔會自動解相依性。yum 同 dnf 係建喺 rpm 之上嘅高階工具,會自動由套件庫落載並解決相依性。想安裝方便可以用 yum/dnf,但識 rpm 先至可以喺離線或者手動排錯時候頂得住。
系統排錯交俾持牌師傅,做好一步保養承諾
維修快係獨立第三方技術服務公司,由經驗師傅上門處理 Linux 套件安裝、系統排錯同維護,我哋就自己完成嘅工作提供保養承諾。上門檢查費 HK$200 起,明碼實價,絕無隱藏收費。