萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

RPM vs YUM 深度解析:Red Hat 系套件管理的兩代核心工具差異與實戰

在 Red Hat、Fedora、CentOS、openSUSE 等發行版中,RPM 是底層套件格式與管理器,YUM(Yellowdog Updater, Modified)則是建立在 RPM 之上的高階前端工具。兩者關係緊密但分工明確,本文從原理、指令、依賴處理、資源庫管理四維度深度對比,並附實戰速查表。

RPM 與 YUM 架構關係圖

核心差異一覽表

維度RPMYUM
定位底層套件管理器/格式高階前端管理工具(Shell 介面)
依賴解析手動、極其繁瑣自動從資源庫下載並解決所有相依
資源庫支援無(僅操作本地 .rpm 檔)支援多軟體源(repo),自動同步中繼資料
安裝來源本地 .rpm 檔或 URL配置的 repo 伺服器
資料庫一致性直接操作 RPMDB操作後同步更新 RPMDB,保持一致
適用場景離線安裝、單一套件測試、打包開發日常維運、批次更新、自動化部署

RPM 實戰指令速查

基本操作

rpm -ivh pkg.rpm        # 安裝(-v 顯示進度 -h hash 標記)
rpm -Uvh pkg.rpm        # 升級(不存在則安裝)
rpm -e pkg_name         # 移除(不需 .rpm 副檔名)

查詢與驗證

rpm -q pkg_name         # 查詢是否安裝
rpm -qi pkg_name        # 詳細資訊(版本、建置日期、描述)
rpm -ql pkg_name        # 列出套件安裝的所有檔案
rpm -qf /path/to/file   # 反查檔案屬於哪個套件
rpm -Va                 # 驗證所有套件完整性(找出遺失/被竄改檔案)

進階參數

  • --test:模擬安裝/升級/移除,不實際寫入
  • --nodeps:強制忽略依賴(慎用)
  • --relocate:重新定位安裝路徑(僅支援可重定位套件)

YUM 實戰指令速查

資源庫與更新

yum repolist            # 列出已啟用軟體源
yum check-update        # 檢查可升級套件
yum update              # 升級所有可升級套件(含核心)
yum update kernel       # 僅升級指定套件
yum upgrade             # 大版本升級(含淘汰套件處理)

安裝與移除

yum install pkg_name           # 自動解決依賴並安裝
yum install @group_name        # 安裝套件群組(如 "Development Tools")
yum remove pkg_name            # 移除套件及無用依賴
yum autoremove                 # 清理孤兒依賴

查詢與快取

yum search keyword       # 搜尋套件名/描述含關鍵字
yum info pkg_name        # 顯示詳細資訊
yum list installed       # 列出已安裝套件
yum provides */filename  # 反查檔案屬於哪個套件(極實用)
yum clean all            # 清理快取釋放空間
yum makecache            # 重建快取

自動化排程

# 每日自動檢查更新(需啟用 yum-cron 服務)
systemctl enable --now yum-cron

YUM 設定檔 /etc/yum.repos.d/*.repo 關鍵欄位

[base]
name=CentOS-$releasever - Base
baseurl=https://mirror.centos.org/centos/$releasever/os/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
  • enabled=1/0:啟用/停用此軟體源
  • gpgcheck:驗證套件簽章,生產環境務必開啟
  • priority(需安裝 yum-plugin-priorities):數值越小優先級越高,避免第三方源覆蓋核心套件

實戰場景對比

場景推薦工具指令範例
離線環境安裝單一 .rpmRPMrpm -ivh nginx-1.20.rpm
線上環境安裝 Nginx 及依賴YUMyum install nginx
查詢 /etc/nginx/nginx.conf 屬於哪包RPMrpm -qf /etc/nginx/nginx.conf
搜尋所有含 php 的可用套件YUMyum search php
驗證系統檔案完整性RPMrpm -Va
批次更新生產伺服器YUMyum update -y

結語

RPM 是地基,YUM 是摩天大樓。日常運維 95% 場景用 YUM,只在離線、打包、深度除錯時回頭用 RPM。熟練雙工具切換,才是 Red Hat 系系統管理員的基本功。

copyright © 萬盛學電腦網 all rights reserved