web-dev-qa-db-ja.com

yumリポジトリ用のカスタムパッケージグループを作成すると、「compsファイルが空/破損しています」と表示される

RHEL7.6でカスタムyumリポジトリーのカスタムパッケージグループを設定する際に問題が発生します。

最初に、カスタムyumリポジトリーを作成するために実行しているステップを示します。

  1. すべてのRPMを含むディレクトリを作成し、関連するものをコピーします。

    $ mkdir MyRepo
    $ cp /path/to/some/*.rpm MyRepo/
    
  2. リポジトリのメタデータを生成します。

    $ cd MyRepo
    $ createrepo .
    

カスタムリポジトリが作成されたので、次のようにパッケージグループを作成します。

  1. comps.xmlMyRepo/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にあるものと一致します。これをデバッグする方法について私はかなり迷っています。何が悪いのですか?パッケージ名を誤って入力すると、これほど大きなエラーが発生しますか?

よろしくお願いします。

3
peachykeen

「インストールされているグループファイルはありません。」、「リポジトリのグループファイルを追加できませんでした:ベース-compsファイルが空/破損しています」という同じメッセージが表示されました。

私は公式リポジトリからデフォルトのインストールに取り組んでいました。

キャッシュの問題であることが判明しました。

Sudo yum rm -rf /var/cache/yum

それをすべてクリアしました

1
poleguy