Yum 核心概念
- Repository(倉庫):存放 RPM 包及元數據(repodata)的 HTTP/FTP/本地路徑
- repodata:包含包依賴、文件列表、版本等索引信息,由
createrepo 生成
- /etc/yum.conf:全局配置(緩存目錄、日誌、插件等)
- /etc/yum.repos.d/*.repo:各倉庫具體配置(一個文件一個或多個倉庫)
客戶端配置:.repo 文件結構
[repository-id]
name=Repository Description
baseurl=https://mirror.example.com/centos/7/os/x86_64/
# 或 file:///path/to/local/repo
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
| 字段 | 說明 |
baseurl | 倉庫根目錄(含 repodata),支持 http/ftp/file |
enabled | 1=啟用,0=禁用 |
gpgcheck | 1=驗證 GPG 簽名,需導入 gpgkey |
gpgkey | GPG 公鑰路徑,rpm --import 導入 |
導入 GPG 密鑰
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
# 或從遠程導入
rpm --import https://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7
本地 Yum 源搭建(ISO 掛載)
# 1. 掛載 ISO
mkdir -p /mnt/cdrom
mount -o loop CentOS-7-x86_64-DVD.iso /mnt/cdrom
# 2. 創建 .repo 文件
cat > /etc/yum.repos.d/local.repo <
創建自定義倉庫
# 1. 安裝 createrepo
yum install createrepo -y
# 2. 準備 RPM 包目錄
mkdir -p /data/repo/mypackages
cp *.rpm /data/repo/mypackages/
# 3. 生成元數據
createrepo /data/repo/mypackages/
# 或指定分組文件
createrepo -g /path/to/comps.xml /data/repo/mypackages/
# 4. 配置 .repo 指向 file:///data/repo/mypackages
Yum 常用命令速查表
| 任務 | 命令 |
| 列出可更新包 | yum check-update |
| 更新所有包 | yum update |
| 安裝指定包 | yum install package |
| 更新指定包 | yum update package |
| 搜索包 | yum search keyword |
| 列出所有可安裝包 | yum list |
| 列出可更新包 | yum list updates |
| 列出已安裝包 | yum list installed |
| 列出非倉庫安裝包 | yum list extras |
| 查看包信息 | yum info package |
| 查看已安裝包信息 | yum info installed |
| 刪除包 | yum remove package |
| 查看包依賴 | yum deplist package |
| 查看包組 | yum grouplist |
| 安裝包組 | yum groupinstall "Group Name" |
| 清除包緩存 | yum clean packages |
| 清除元數據緩存 | yum clean metadata |
| 清除所有緩存 | yum clean all |
| 查看事務歷史 | yum history |
| 回滾事務 | yum history undo ID |
Debian/Ubuntu 系統持久化 iptables 規則
(本文原內容包含 iptables 保存,此處補充 Yum 相關)
- CentOS/RHEL:
service iptables save、chkconfig iptables on
- Debian/Ubuntu:需腳本在
/etc/network/if-pre-up.d/ 和 /etc/network/if-post-down.d/ 調用 iptables-restore/save
故障排查技巧
yum repolist all 查看所有倉庫狀態
yum --disablerepo=* --enablerepo=local install pkg 臨時指定倉庫
yumdownloader pkg 僅下載不安裝
- 緩存損壞:
rm -rf /var/cache/yum/* && yum clean all