RHEL7.6でカスタムyumリポジトリーのカスタムパッケージグループを設定する際に問題が発生します。
最初に、カスタムyumリポジトリーを作成するために実行しているステップを示します。
すべてのRPMを含むディレクトリを作成し、関連するものをコピーします。
$ mkdir MyRepo
$ cp /path/to/some/*.rpm MyRepo/
リポジトリのメタデータを生成します。
$ cd MyRepo
$ createrepo .
カスタムリポジトリが作成されたので、次のようにパッケージグループを作成します。
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>
createrepo -g repodata/comps.xml .
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
にあるものと一致します。これをデバッグする方法について私はかなり迷っています。何が悪いのですか?パッケージ名を誤って入力すると、これほど大きなエラーが発生しますか?
よろしくお願いします。
「インストールされているグループファイルはありません。」、「リポジトリのグループファイルを追加できませんでした:ベース-compsファイルが空/破損しています」という同じメッセージが表示されました。
私は公式リポジトリからデフォルトのインストールに取り組んでいました。
キャッシュの問題であることが判明しました。
Sudo yum rm -rf /var/cache/yum
それをすべてクリアしました