夜雨聆风学习资料网

ARTICLE · 1248054

YUM 软件仓库解释

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 使用。

相关学习资料