当前位置: 首页 > java >正文

createrepo生成yum仓库元数据xml文件

步骤 1: 安装 createrepo 工具

首先,确保你的系统已经安装了 createrepo 工具。如果尚未安装,可以通过以下命令安装:

# 对于 CentOS/RHEL 7 及类似版本:
yum install createrepo -y# 对于 CentOS Stream 8/9、RHEL 8/9 及类似版本,可能需要使用 dnf:
dnf install createrepo -y

步骤 2: 生成仓库元数据

安装完成后,进入你的仓库目录并生成元数据:

# 进入你的本地仓库目录,我当前的仓库目录为/data/app/
cd /data/app/# 使用 createrepo 命令在当前目录生成元数据
createrepo .

命令说明

  • createrepo . 命令会在当前目录(即 /data/app/)下创建一个名为 repodata 的子目录。
  • repodata 目录内部会包含 repomd.xml, primary.xml.gz, filelists.xml.gz, other.xml.gz 等关键文件,这些文件共同描述了仓库中所有 RPM 包的信息和依赖关系 。

预期成功输出

[root@localhost yum.repos.d]# createrepo /data/app/
Directory walk started
Directory walk done - 50 packages
Temporary output repo path: /data/app/.repodata/
Preparing sqlite DBs
Pool started (with 5 workers)
Pool finished

步骤 3: 验证元数据生成

生成完成后,验证 repodata 目录和 repomd.xml 文件是否已正确创建:

[root@localhost yum.repos.d]# ll /data/app/repodata/
total 232
-rw-r--r--. 1 root root 21444 Sep  3 14:25 02e0a1ab69291a701f0be7fae8a343b723ff4c53c72a3ac798dd3e441f4b924a-primary.xml.gz
-rw-r--r--. 1 root root 44620 Sep  3 14:25 1a32f5e2bf49e7d91dd3c72be7e582b69d1fe5aff6c7fcdd8aba8df993cee3cd-filelists.xml.gz
-rw-r--r--. 1 root root 55881 Sep  3 14:25 27c47c1ebfbe2189707c91cbe83f964a0c1321d9be62122ebd1a5a9927f9ac06-filelists.sqlite.bz2
-rw-r--r--. 1 root root 25710 Sep  3 14:25 560e1a85b54f8f483d2233d5ece2b3fc195cdeafa08132655f4a546badeb35df-other.xml.gz
-rw-r--r--. 1 root root 41723 Sep  3 14:25 8feb1da36844b9ddb2ce92621ddb7f9dd7090a28d9e4a5d46e9d7d529f5cfe21-primary.sqlite.bz2
-rw-r--r--. 1 root root 31451 Sep  3 14:25 f7c1ac2ac63b9e907cdcb37d9e80c9cdd237fcc9f292968f1b1f3785e09977ac-other.sqlite.bz2
-rw-r--r--. 1 root root  3090 Sep  3 14:25 repomd.xml

步骤 4: 更新 Yum 缓存

元数据生成成功后,再次运行命令更新 Yum 缓存:

yum clean all  //如果是生产环境请谨慎操作
yum makecache

现在,yum makecache 命令应该能够成功读取本地仓库的元数据并创建缓存。

⚠️ 注意事项

  1. 仓库配置文件检查
    确保你的 /etc/yum.repos.d/ 目录下的某个 .repo 文件(比如 local.repo)中配置了指向 /data/app/ 的仓库。配置块应该类似这样:

    [local-app]  # 仓库名称
    name=Local App Repository  # 仓库描述
    baseurl=file:///data/app/  # 关键:指向本地路径
    enabled=1    # 启用此仓库
    gpgcheck=0   # 如果不使用 GPG 密钥验证包,则设置为 0
    

    如果 baseurl 配置错误,Yum 仍然无法找到正确的路径 。

  2. 权限问题
    确保 /data/app/ 目录及其下的文件对 Yum 进程(通常以 root 身份运行)有可读权限。repodata 目录生成后也应具有适当的读取权限。

  3. 后续更新
    每当你在 /data/app/ 目录中添加、删除或更新 RPM 软件包时,都需要重新运行 createrepo . 命令来更新元数据索引,否则 Yum 将无法感知到这些变化。

📖 补充知识

repodata/ 目录是 Yum 仓库的核心,它包含了一系列元数据文件,这些文件使得 Yum 能够:

  • 解析依赖关系:通过 primary.xml.gz 了解软件包之间的依赖。
  • 列出文件:通过 filelists.xml.gz 知道每个软件包包含哪些文件。
  • 其他元信息:如软件包更改记录(other.xml.gz)和分组信息(comps.xml)。
    没有这些元数据,Yum 就无法正确工作。
http://www.xdnf.cn/news/19879.html

相关文章:

  • 【机器学习学习笔记】逻辑回归实现与应用
  • 微信小程序预览和分享文件
  • AI生成内容的版权迷局:GPT-4输出的“创意”版权风险与规避之道
  • 解决服务器 DNS 解析失败,从这几步排查开始
  • MiniCPM-V 4.5 模型解析
  • 代码随想录算法训练营第二天| 209.长度最小的子数组
  • 变频器实习DAY42 VF与IF电机启动方式
  • 开源网络流量分析利器:tproxy
  • 嵌入式 - 硬件:51单片机(2)
  • daily notes[9]
  • 校园外卖点餐系统(代码+数据库+LW)
  • try-catch:异常处理的最佳实践与陷阱规避
  • MMD动画(一)模型、动作、音乐导入
  • Graphpad Prism 实战教程(一):小鼠体重变化曲线绘制全流程(含数据处理与图表美化)
  • 9月3日
  • 网格图--Day04--网格图DFS--2684. 矩阵中移动的最大次数,1254. 统计封闭岛屿的数目,130. 被围绕的区域
  • 现代软件栈全景解析,揭示从用户界面到基础设施的层层构建与关键技术
  • FFmpeg-Batch:GitHub开源视频批量处理工具,高效解决视频转格式与画质压缩需求
  • 华为HCIE证书多久续一次费?费用多少?
  • 接口保证幂等性你学废了吗?
  • Kafka Topic(主题)详解
  • 【CMake】message函数
  • Flutter + Web:深度解析双向通信的混合应用开发实践
  • 深入理解 jemalloc:从内存分配机制到技术选型
  • Docker--架构篇
  • C++CSP-J/S必背模板
  • 机器学习从入门到精通 - Transformer颠覆者:BERT与预训练模型实战解析
  • PLSQL导入excel数据的三种方法
  • PL-YOLOv8:基于YOLOv8的无人机实时电力线检测与植被风险预警框架,实现精准巡检与预警
  • 区块链版权存证的法律效力与司法实践