目录

Repos系列yum-makecache是怎么同步软件包数据的-

【Repos系列】yum makecache是怎么同步软件包数据的?

yum makecache 是 YUM(Yellowdog Updater Modified)包管理工具中用于同步并缓存远程软件仓库元数据的命令。

核心作用

让本地系统获取并存储软件仓库的最新元数据信息,从而加速后续的包管理操作(如搜索、安装、更新等)。

工作原理

1. 解析仓库配置

  • YUM 首先读取 /etc/yum.repos.d/ 目录下的所有 .repo 配置文件。
  • 检查每个仓库的启用状态(enabled=1)和仓库 URL(baseurl 或 mirrorlist),确定需要同步的仓库列表。

2. 下载元数据文件

YUM 会从每个启用的仓库下载元数据文件,主要包括:

  • repomd.xml:元数据的索引文件,记录了仓库中其他元数据文件(如软件包列表、依赖关系等)的位置和校验和。
  • primary.xml.gz:包含所有软件包的基本信息(名称、版本、依赖关系、文件列表等)。
  • filelists.xml.gz:软件包内包含的文件列表。
  • other.xml.gz:其他附加信息(如软件包修改记录)。
  • updateinfo.xml.gz (可选):安全更新和补丁的详细信息。

3. 验证元数据完整性

  • YUM 使用 GPG 密钥验证元数据签名(如果仓库配置了 gpgcheck=1),确保数据来源可信。
  • 检查文件的校验和(如 SHA256),确保下载的元数据未被篡改。

4. 生成本地缓存

  • 下载的元数据会被解析并转换为 SQLite 数据库格式,存储在本地的缓存目录 /var/cache/yum/ 下(不同仓库的缓存位于各自子目录中,如 /var/cache/yum/x86_64/7/epel)。

  • 缓存文件包括:

    • *.sqlite:软件包信息的结构化数据库,用于快速查询。
    • cachecookie:记录缓存生成时间戳,用于判断缓存是否过期。

5. 更新缓存状态

  • 更新缓存后,YUM 会记录每个仓库的元数据版本和更新时间。后续操作(如 yum search 或 yum install)直接读取本地缓存,无需重复下载元数据。