【问题标题】:createrepo using --split option for a multi CD distributioncreaterepo 使用 --split 选项进行多 CD 分发
【发布时间】:2015-05-04 08:40:24
【问题描述】:

我正在尝试创建自定义的 CentOS 多 CD 安装。我们当前的发行版刚刚增长到超过 CD 的大小。当然,您可以将其刻录到 DVD 上。好吧,我们有客户使用不支持 DVD 的旧机器,所以我必须在 2 张 CD 上创建一个发行版。到目前为止,我已经使用 --split 选项找到了 createrepo,但找不到任何关于如何使其正常工作的好例子。来自 createrepo 的手册页:

   --split
          Run  in  split  media mode. Rather than pass a single directory,
          take a set of directories corresponding to different volumes  in
          a media set.

这里是 createrepo 命令:

  echo "Creating the repository..."
  discinfo=`head -1 $OS_BASE/.discinfo`
  createrepo -v --split -u "media://$discinfo" -g repodata/comps.xml $ISO $ISO_2

注意:ISO(光盘 1)和 ISO_2(光盘 2)表示在执行 createrepo 之前已将 RPM 复制到其中的构建目录。

CentOS 5 的 RPM 目录:$ISO/CentOS

CentOS 6 的 RPM 目录:$ISO/Packages

我遇到的问题是我不确定将 --split 选项与 createrepo 一起使用会发生什么。我认为我使用 --splitcreaterepo 朝着正确的方向前进,但我不太确定。

关于如何正确构建多 CD 发行版的任何想法?我似乎找不到任何好的例子。

* 问题解决后*

createrepo --split 将查看构建目录中的所有 RPM,并将在安装的 disc1 上的 repodata 目录中创建适当的 XML 文件。这些 XML 文件将在安装过程中告诉 anaconda 他们在哪个安装光盘上,并据此知道要求您插入某个 CD。确保第 4 行(Disc # Line)上的 .discinfo 文件为光盘 1 和 2 正确设置。

我最终只使用 pkorder 脚本来决定我应该在 disc2 上放置哪些 RPM。我还注意到 CentOS 6 没有 pkg​​order 脚本,所以我将无法继续使用它。那时可能必须重新安装我的安装才能使用答案中描述的其他脚本。

【问题讨论】:

    标签: linux centos installation


    【解决方案1】:

    我不确定,但我相信您需要使用 pkgordersplittree.py 脚本来生成拆分 RPM 目录,然后您可以在 --split 模式下运行 createrepo 在它们之间运行 @987654325 @/等等。在每个 RPM 目录/等上。按顺序排列。

    【讨论】:

    • 我开始使用 pkgorder 这样我就可以运行 splittree.py 但遇到了一个错误(我认为):\nTraceback(最近一次调用):文件“/usr/lib/anaconda-runtime /pkgorder”,第 32 行,在 ?从 yuminstall 导入 YumSorter 文件“/usr/lib/anaconda/yuminstall.py”,第 32 行,在?从包导入 recreateInitrd 文件“/usr/lib/anaconda/packages.py”,第 27 行,在?导入 fsset 文件“/usr/lib/anaconda/fsset.py”,第 35 行,在? import bootyutil ImportError: No module named bootyutil
    • 我通过编辑 /usr/lib/anaconda-runtime/pkgorder 脚本并在最佳。所以,我现在尝试运行 pkgorder。
    • pkgorder :对树使用 rpm 架构,例如 i686 -- 这里唯一的问题是我不知道 应该使用什么是???
    • 看起来 toppath 是源存储库目录(在 yum 配置文件中用作 baseurl),producttoppath 下 RPM 所在的路径(直接或在一个额外的RPMS 目录)。
    • 无法让 pkgorder 工作..这是一个废话(至少在 CentOS 5.9 中)。当我们升级我们的构建服务器时,将尝试使其工作。因此,我创建了 2 个 iso 构建目录并手动将操作系统 rpm 复制到 ISO 1 和 ISO 2 目录)。然后我运行 createrepo 并使用 --split 将两个 ISO 目录传递给它,它创建了确定哪些 RPMS 在哪个磁盘上所需的文件。我将发布有关此问题的更多详细信息。谢了!!
    猜你喜欢
    • 1970-01-01
    • 2010-10-07
    • 1970-01-01
    • 2017-06-09
    • 1970-01-01
    • 1970-01-01
    • 2020-11-11
    • 2018-12-25
    • 1970-01-01
    相关资源
    最近更新 更多