ARTICLE · 1248054
YUM 软件仓库解释
YUM(Yellowdog Updater Modified)是 RPM 系 Linux(如 CentOS、RHEL、Fedora)的包管理工具,而软件仓库(repository)就是它获取软件包的“源”。
一、什么是 YUM 仓库
YUM 仓库本质是一个存放 RPM 包及其元数据的目录,可以通过 HTTP/HTTPS、FTP 或本地文件路径访问。YUM 客户端从仓库读取元数据,自动解决依赖关系并下载安装。
一个标准仓库目录结构大致如下:
text
repo/
├── repodata/ # 元数据(最关键)
│ ├── repomd.xml # 元数据索引文件
│ ├── primary.xml.gz # 包列表、依赖信息
│ ├── filelists.xml.gz
│ └── other.xml.gz
└── Packages/ # 实际的 .rpm 包
├── nginx-1.20.rpm
└── ...
repodata/ 是仓库的核心——YUM 先下载元数据,知道有哪些包、依赖什么,再决定下载哪些 rpm。元数据用 createrepo 命令生成。
二、仓库配置文件
YUM 仓库配置放在 /etc/yum.repos.d/ 目录下,每个 .repo 文件定义一个或多个仓库:
ini
[base]
name=CentOS-$releasever - Base
baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
常用字段:
字段 说明
[base] 仓库 ID(唯一标识)
name 仓库描述
baseurl 仓库地址,可写多个
mirrorlist 镜像列表地址(与 baseurl 二选一)
enabled 是否启用(1/0)
gpgcheck 是否校验包签名
gpgkey 公钥地址
三、常用命令
bash
yum repolist # 列出已启用的仓库
yum clean all # 清除缓存
yum makecache # 重建元数据缓存
yum list # 列出可用包
yum info nginx # 查看包信息
yum install nginx # 安装(自动解决依赖)
yum remove nginx # 卸载
yum update # 更新
yum search 关键字 # 搜索
yum provides /usr/bin/ls # 查文件属于哪个包
四、自建本地仓库(常见场景)
bash
# 1. 安装 createrepo
yum install -y createrepo
# 2. 把 rpm 放进目录,生成元数据
mkdir -p /var/www/html/repo/Packages
cp *.rpm /var/www/html/repo/Packages/
createrepo /var/www/html/repo/
# 3. 客户端配置 .repo 文件指向该地址
五、补充说明
YUM vs DNF:CentOS 8 / RHEL 8 起默认用 DNF(YUM 的下一代,命令基本兼容),底层用 libsolv 解决依赖,更快更准。yum 命令通常是 dnf 的软链接。
优先级:多个仓库有同名包时,可装 yum-plugin-priorities 插件,用 priority= 控制优先级。
离线环境:可把仓库同步到本地(如 reposync),再用本地路径 baseurl=file:///path 使用。















































































