Yum は Centos リポジトリファイル内の $releasever 変数を認識しないようです

Yum は Centos リポジトリファイル内の $releasever 変数を認識しないようです

Centos 7 クラスターで yum を使用してパッケージをインストールしようとしたところ、次のエラーが発生しました。

One of the configured repositories failed (Unknown), 
and yum doesn't have enough cached data to continue. At this point the only 
safe thing yum can do is fail. There are a few ways to work "fix" this: [...]

yum clean allオンラインで提案されているいくつかの解決策 (キャッシュの削除、リポジトリ データベースの削除と再構築など)を試しましたが、何も機能しませんでした。

何時間もトラブルシューティングを行った後、回避策を見つけることができました。/etc/yum.repos.d/CentOS-Base.repoファイル上で、baseurl行のコメントを解除し、$releasever変数を「7」(OS のバージョン)に置き換えました。何らかの理由で、yum は $releasever を認識できず、リポジトリを見つけることができませんでした。

したがって、次の代わりに:

baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/

私は持っている:

baseurl=http://mirror.centos.org/centos/7/os/$basearch/

その後、yum update と yum install は両方とも正常に動作するようです。ただし、これが問題の永続的な解決策であるかどうかはわかりません。

何が起こっているのか、またこの問題を解決するより適切な方法があるかどうか、誰か教えてもらえますか?

ありがとう。

答え1

最近、この問題に遭遇しました。設定はうまくいきました。また、で設定releaseverを修正できることもわかりました。distroverpkg/etc/yum.conf

次のように設定しました:

distroverpkg=centos-release

これは私にとってはうまくいきました。

答え2

解決策を見つけました。

yum --installroot=/usr/local install nginx --releasever=7

しかし、なぜ失敗したのかはまだ解明されていません。

関連情報