作業用メモとして。
RHEL8で「dnf update」コマンド実行したらエラーが出ます。
以下が例。
8.4に固定してdnf updateを実施した際に以下エラー
[root@rhel84 ~]# dnf update
サブスクリプション管理リポジトリーを更新しています。
Red Hat Enterprise Linux 8 for x86_64 – AppStre 0.0 B/s | 0 B 00:00
エラー: repo ‘rhel-8-for-x86_64-appstream-rpms’ のメタデータのダウンロードに失敗しました : Cannot prepare internal mirrorlist: Cannot resolve path for: “4/x86_64/appstream/os”
この原因ですがver固定の記載方法に間違いがあることです。
/etc/yum/vars/releasever に「8.4」みたく固定したいVerを記載すればVer固定ができます。
個の記載内容に間違いがあるとNGでした。
例のエラーメッセージだと「8,4」と記載した際に出ました。
これを「8.4」にすると問題なくアップデートOKです。
※改行有でも行けました(前はだめだったと記憶しているので何か変わった?)
以下推測。
「8-4」記載にすると「Status code: 404 for https://cdn.redhat.com/content/dist/rhel8/8-4/x86_64/appstream/os/repodata/repomd.xml (IP: <IPアドレス>)」と出たました。
repoの中に「https://cdn.redhat.com/content/dist/rhel8/$releasever/x86_64/~」といった記載がされていて$releaseverが「/etc/yum/vars/releasever」に記載されたものに書き換わります。
これが「8-4」記載だと「https://cdn.redhat.com/content/dist/rhel8/8-4/x86_64/~」となり、URLとして成り立っているようです。
しかしながら「8,4」記載だと「https://cdn.redhat.com/content/dist/rhel8/8,4/x86_64/~」とはならず、「,」以前の部分は切り捨てられて「4/x86_64/~」となってしまい、URLとして成立しなくなる、そのためにrepoを取りに行けなくなり、「Cannot prepare internal mirrorlist」というエラーが出る、というのが原因かもしれません。
あくまでも推測ですが。