Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux RPM 套件管理完整攻略:安裝、查詢、卸載與提取

編輯:Linux 教學

前言

RPM(Red Hat Package Manager)是 Red Hat 系發布版(RHEL、CentOS、Fedora、openSUSE 等)的核心軟體封裝格式。熟練掌握 rpm 底層指令,能在無網路、離線環境或自動化部署中精準控制軟體生命週期。本文系統整理安裝、升級、查詢、卸載、提取檔案、來源碼重建等實戰操作。

一、二進位 RPM 安裝與升級

# 基本安裝
rpm -ivh package.rpm          # -i 安裝 -v 詳細 -h 進度條

# 強制安裝(忽略檔案衝突)
rpm -ivh --force package.rpm

# 忽略相依性安裝(慎用)
rpm -ivh --nodeps package.rpm

# 升級安裝(舊版存在則升級,不存在則安裝)
rpm -Uvh package.rpm

# 降級安裝
rpm -Uvh --oldpackage old-version.rpm

# 重新安裝(修復損壞檔案)
rpm -ivh --replacepkgs package.rpm

二、來源碼 RPM (.src.rpm) 重建流程

方法一:標準建置(產生二進位 RPM 再安裝)

# 1. 安裝 src.rpm(釋出 spec 與原始碼至 ~/rpmbuild 或 /usr/src/redhat)
rpm -ivh package.src.rpm

# 2. 進入 SPECS 目錄
cd ~/rpmbuild/SPECS   # 或 /usr/src/redhat/SPECS

# 3. 僅做準備階段(解壓、打補丁)
rpmbuild -bp package.spec

# 4. 完整建置二進位 RPM
rpmbuild -bb package.spec

# 5. 安裝產出的 RPM
rpm -ivh ~/rpmbuild/RPMS/x86_64/package-*.rpm

方法二:直接編譯安裝(不產生 RPM)

rpm -ivh package.src.rpm
cd ~/rpmbuild/BUILD/package-*/
./configure --prefix=/usr/local/package
make
make install

三、卸載管理

# 基本卸載(套件名稱不含 .rpm 副檔名)
rpm -e package-name

# 強制卸載(忽略被其他套件相依)
rpm -e --nodeps package-name

# 查詢套件確切名稱再卸載
rpm -q package-keyword
rpm -e $(rpm -q package-keyword)

四、查詢與驗證(最高頻操作)

需求指令說明
列出所有已安裝套件rpm -qa配合 grep 過濾
查詢套件是否安裝rpm -q package回傳完整版本號
查詢套件詳細資訊rpm -qi package版本、描述、建置時間、安裝大小等
列出套件安裝的所有檔案rpm -ql package已安裝套件
列出未安裝 RPM 內含檔案rpm -qlp package.rpm離線檢視
查詢檔案屬於哪個套件rpm -qf /path/to/file絕對路徑
查詢指令屬於哪個套件rpm -qf $(which cmd)反引號或 $()
驗證套件檔案完整性rpm -V packageS=大小 M=模式 5=MD5 U=用戶 G=群組 T=時間
查看套件變更日誌rpm -q --changelog package—
查看套件安裝/卸載腳本rpm -q --scripts packageprein/postin/preun/postun

五、不安裝直接提取 RPM 內檔案

# 方法一:rpm2cpio + cpio(標準做法)
rpm2cpio package.rpm | cpio -idmv
# -i extract, -d make directories, -m preserve mtime, -v verbose

# 方法二:midnight commander (mc) 視覺化瀏覽
mc package.rpm   # 按 Enter 進入虛擬檔案系統複製檔案

# 方法三:alien 轉換為 deb/tgz 再解壓
alien -t package.rpm
tar -zxvf package.tgz

六、常見問題與技巧

  1. 資料庫損壞:rpm --rebuilddb 重建 Berkeley DB。
  2. 鎖定錯誤:刪除 /var/lib/rpm/__db.* 殘留鎖檔。
  3. 離線環境解決相依:rpm -qpR package.rpm 查詢需求,逐一下載安裝。
  4. 查看檔案屬於哪個套件(含未安裝):rpm -qfl package.rpm(需 4.13+ 版本)。
  5. GPG 簽章驗證失敗:rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-* 匯入公鑰。

七、總結

rpm 是底層利器,配合 yum/dnf 高層管理器可滿足從離線部署到自動化建置的完整需求。建議將 -qa、-ql、-qf、-V、rpm2cpio 列為肌肉記憶指令,關鍵時刻能秒級定位問題。

Copyright © Windows教程網 All Rights Reserved