尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Linux createrepo 命令详解:一键搭建本地 YUM/DNF 私有仓库

Linux createrepo 命令详解:一键搭建本地 YUM/DNF 私有仓库 Linux 学习资料 https://pan.baidu.com/s/1A6qqBk2ViE_Le2cQjSowkQ?pwd7uz81. 命令简介createrepo 是一个用于创建 YUMYellowdog Updater, Modified软件仓库的命令行工具。它通过扫描指定目录中的 RPM 包生成必要的元数据文件存储于 repodata 目录从而使该目录能够被 YUM、DNF 等包管理器识别并作为软件源使用。它是搭建本地或私有 RPM 软件仓库的基础工具。2. 语法格式bash运行createrepo [选项] 目录参数说明[选项]用于控制 createrepo 行为的各种参数。 目录 包含 RPM 软件包的目录路径。createrepo 将在此目录下或指定位置生成 repodata 文件夹。3. 常用选项及说明核心选项表格短选项长选项说明-u url--baseurl url指定仓库的基准 URL。生成的元数据中会包含此 URL供客户端定位软件包。-o path--outputdir path指定生成的元数据repodata的输出目录。默认为 目录 参数指定的路径。-g file--groupfile file指定用于定义软件包分组的 XML 文件通常为 comps.xml。该文件需与 RPM 包位于同一目录或指定完整路径。--update增量更新模式。 如果目标目录已存在元数据则仅扫描并更新发生变化的 RPM 包信息大幅提升重建速度。-c path--cachedir path指定缓存目录用于存储已处理 RPM 包的校验和信息。在重复为同一仓库生成元数据时可显著提升性能。-v--verbose启用详细输出模式显示处理过程中的详细信息。-q--quiet启用安静模式抑制大部分输出信息。-d--database生成 SQLite 格式的元数据数据库默认启用。--no-database不生成 SQLite 数据库。-s type--checksum type指定用于元数据和软件包的校验和算法。默认为 sha256其他可选值如 sha1、md5 等。-p--pretty生成格式整齐、易于阅读的 XML 文件。高级与筛选选项表格短选项长选项说明-x pattern--excludes pattern排除符合指定模式支持通配符的 RPM 包不将其纳入仓库元数据。-i file--pkglist file指定一个文件其中每行列出一个 RPM 包的路径相对或绝对。createrepo 仅处理列表中指定的包。-n path/url--includepkg path/url通过命令行直接指定要包含的单个 RPM 包路径或 URL。可多次使用该选项添加多个包。--skip-stat与 --update 联用时跳过文件状态检查假设文件名相同的文件内容也相同。警告仅在高度信任文件未更改时使用。--compress-type type指定元数据文件的压缩格式。可选compat默认兼容旧客户端、gz、bz2、xz需支持。--unique-md-filenames在元数据文件名中包含其内容的校验和默认有助于 HTTP 缓存。--simple-md-filenames使用简单的固定文件名如 repomd.xml不包含校验和。--retain-old-md N保留旧元数据的最新 N 个副本便于旧客户端访问。默认为 0不保留。-h--help显示帮助信息。--version显示 createrepo 的版本信息。4. 示例用法示例 1创建基础仓库为 /opt/my_repo 目录下的所有 RPM 包生成元数据。bash运行createrepo /opt/my_repo示例 2创建带分组信息的仓库使用 comps.xml 文件定义软件包分组。bash运行# comps.xml 在 RPM 目录内 createrepo -g comps.xml /path/to/rpms # 或指定 comps.xml 的完整路径 createrepo -g /path/to/comps.xml /path/to/rpms示例 3增量更新仓库当仓库中只有部分 RPM 包发生变化时使用 --update 选项快速更新元数据无需重新处理所有包。bash运行createrepo --update /path/to/rpms示例 4指定输出目录和基准 URL将生成的 repodata 输出到 /var/www/html/repo/并设置仓库的基准 URL。bash运行createrepo -o /var/www/html/repo/ -u http://myserver.com/repo/ /path/to/rpms示例 5使用缓存提升性能为仓库指定一个缓存目录后续运行时将利用缓存信息加速。bash运行createrepo -c /var/cache/createrepo/my_repo /opt/my_repo示例 6排除特定包排除所有以debuginfo和devel命名的 RPM 包。bash运行createrepo -x *debuginfo* -x *devel* /path/to/rpms5. 注意事项目录权限运行 createrepo 的用户必须对目标 目录 具有读写权限因为工具需要在该目录下创建 repodata 子目录和文件。组文件位置使用 -g 选项时如果未指定完整路径createrepo 默认在 RPM 包所在目录下寻找组文件如 comps.xml。请确保文件位置正确。增量更新--update 模式通过比较文件大小和修改时间来判断文件是否更改。如果 RPM 包内容改变但时间戳未更新例如被复制的包可能导致更新失败。此时需要强制重新生成整个仓库不使用 --update。兼容性生成的元数据格式与 createrepo 版本相关。确保用于更新仓库的 createrepo 版本与最初创建时一致或兼容以避免潜在问题。
返回列表