为 yum 存储库创建自定义包组给出“comps 文件为空/损坏”

为 yum 存储库创建自定义包组给出“comps 文件为空/损坏”

我在 RHEL7.6 中为自定义 yum 存储库设置自定义软件包组时遇到问题。

首先,以下是我创建自定义 yum 存储库所采取的步骤。

  1. 创建一个包含所有 RPM 的目录并复制相关的:

    $ mkdir MyRepo
    $ cp /path/to/some/*.rpm MyRepo/
    
  2. 为存储库生成元数据:

    $ cd MyRepo
    $ createrepo .
    

现在自定义存储库已创建,我将继续创建包组,如下所示。

  1. 在以下位置创建一个comps.xml文件MyRepo/repodata/
    $ touch repodata/comps.xml
    
    包含以下形式的元数据:
    <comps>
    <!--  <meta> -->
    <!-- Meta information will go here eventually... -->
    <!--  </meta> -->
      <group>
        <id>myrepo</id>
        <name>MyRepo</name>
        <default>true</default>
        <description>My custom repository</description>
        <uservisible>true</uservisible>
        <packagelist>
          <packagereq type="mandatory">octave</packagereq>
          <packagereq type="mandatory">octave-devel</packagereq>
          etc...
        </packagelist>
      </group>
    </comps>
    
  2. 然后,我更新之前创建的元数据以说明组数据:
    createrepo -g repodata/comps.xml .
    
  3. 最后我创建myrepo.repo目录/etc/yum.repos.d/并将以下内容放入其中:
    [myrepo]
    name=MyRepo
    baseurl=file:///path/to/MyRepo
    enabled=1
    

一旦这一切完成,我yum clean all就毫无怨言地工作。但当我去测试事情时,yum --noplugins groupinfo MyRepo事情变得很糟糕。我收到以下错误:

There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Failed to add groups file for repository: MyRepo - comps file is empty/damaged
Warning: group/environment MyRepo does not exist.

我的 comps 文件不为空,其哈希值与repodata/repomd.xml.我对如何调试这个感到非常困惑。我究竟做错了什么?包名输入错误会导致这么大的错误吗?

预先感谢您的帮助。

答案1

我收到相同的消息,“这里没有安装的组文件。”和“无法为存储库添加组文件:基础 - comps 文件为空/损坏”。

我正在从官方存储库进行默认安装。

原来是缓存问题。

sudo yum rm -rf /var/cache/yum

一切都清除了

相关内容