RPM 是底層包格式,YUM/DNF 是高層包管理器(解決依賴、倉庫同步)。本文涵蓋安裝、升級、查詢、驗證、卸載、倉庫配置等全生命週期操作。
# 安裝本地 RPM
rpm -ivh package.rpm # -i install, -v verbose, -h hash進度
rpm -Uvh package.rpm # 升級(不存在則安裝)
rpm -Fvh package.rpm # 刷新(僅升級已安裝)
# 強制/忽略依賴(慎用)
rpm -ivh --force --nodeps package.rpm
# 卸載
rpm -e package_name
rpm -e --nodeps package_name # 忽略依賴強制卸載
# 查詢已安裝包
rpm -q package_name # 是否安裝
rpm -qi package_name # 詳細信息
rpm -ql package_name # 文件列表
rpm -qc package_name # 配置文件列表
rpm -qd package_name # 文檔文件列表
rpm -qf /path/to/file # 文件屬於哪個包
rpm -qa # 所有已安裝包
rpm -qa | grep kernel
# 查詢未安裝 RPM 文件
rpm -qip package.rpm # 信息
rpm -qlp package.rpm # 文件列表
# 驗證包完整性
rpm -V package_name # 對比文件屬性(S大小、M模式、5摘要、D設備、L鏈接、U用戶、G組、T時間)
rpm -Va # 全系統驗證
# 包簽名驗證
rpm --checksig package.rpm
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
# 安裝
yum install package_name
dnf install package_name # Fedora 22+/RHEL 8+ 默認 dnf
# 升級
yum update package_name # 指定包
yum update # 全系統升級
# 卸載
yum remove package_name
yum autoremove # 移除無用依賴
# 搜尋
yum search keyword
yum list available | grep keyword
yum provides */filename # 反向查找提供某文件的包
yum repolist # 啟用倉庫列表
yum repolist all # 所有倉庫
yum-config-manager --add-repo URL
yum-config-manager --enable repo_id
yum-config-manager --disable repo_id
# 清理緩存
yum clean all
yum makecache # 重建緩存
yum-plugin-versionlock:鎖定包版本 yum versionlock kernel-3.10.0-1160.el7yum-plugin-downloadonly:僅下載不安裝 yum install --downloadonly --downloaddir=/tmp pkgyum-plugin-security:安全更新 yum update --security| 場景 | 命令 |
|---|---|
| 查看包安裝腳本 | rpm -q --scripts package_name |
| 提取 RPM 文件不安裝 | rpm2cpio package.rpm | cpio -idmv |
| 修復 RPM 數據庫 | rpm --rebuilddb |
| 離線安裝依賴包 | yum install --downloadonly --downloaddir=/offline pkg → 拷貝 → yum localinstall /offline/*.rpm |
| 查看包變更日誌 | rpm -q --changelog package_name |
dnf 為 yum 別名dnf module list、dnf module install nodejs:18