私が働いている会社のプライベートレポを設定しています。最初は適切に機能していましたが、今日、私が作成した新しいrpmをインストールしようとすると、この醜いエラーが発生しました。
http://<server_name>/centos/7/repodata/a6ecd0c880b1f5128974cd147a53cd84d7dab269b9055215b6fbe99fb98f6d7a-primary.sqlite.bz2: [Errno 14] HTTP Error 404 - Not Found-:-- ETA
私はすでに試しました:
yum clean all
rm -rf /var/cahe/yum
yum repolist
そして再び同じエラー。
私はrepoサーバーのrepodataの下にあるすべてのコンテンツを消去し、次のコマンドでrepoを再作成しました。
createrepo /path/to/repo/directory
リポジトリを再作成した後、もう一度実行しました
yum clean all
rm -rf /var/cahe/yum
yum repolist
しかし、まだ何も機能していません
今のところサーバーで遊んでいるのは私だけなので、クライアントの構成に問題がないことを100%確信しています。先週はうまく機能していました。
それ以外の場合は、httpでリポジトリにアクセスできるので、すべてのパッケージとリポジトリをWebブラウザで表示できます。実行する場合
curl http://<server_name>/centos/7/repodata/repomd.xml
クライアントから、正しいファイルを取得します。
(yum clean all; rm-rf /var/cache/yum; yum update
を実行した後でも)プライマリDB名の名前がクライアントで正しくないことに気付きました。どうすれば修正できますか?私は午後ずっとこの問題を掘り下げてきましたが、何も変わりません
Repoディレクトリのアクセス許可はセットアップOK(トリプルチェック)
何が欠けていますか???
よろしくお願いします
少なくとも昨日の問題に直面していない限り、昨日の夜に答えを見つけたと思います。
解決策は簡単です。クライアントがリポジトリのローカルキャッシュを保持しないようにします。これは、/etc/yum.conf
クライアントファイルに次の行を含めて実行できます。
http_caching=none
このオプションを設定すると、クライアントがyum update
またはyum repolist
を実行するたびに、リポジトリサーバーからすべてのリポデータがダウンロードされるため、すべてのファイルが最新バージョンになります。
yum clean all; rm -rf /var/cache/yum
を使用してクライアントのすべてのローカルキャッシュを消去していた場合、クライアントは古いrepodataファイルを検索し続けました。誰かが答えを持っている場合は、それを共有してください。過去数日間。
とにかくあなたのヒントとアドバイスをありがとう
私は同様のエラーに遭遇していて、ここで私の発見を共有したいと思いました。
民間企業のリポジトリサーバーは、一種のWebアクセラレータの背後に配置されていました。したがって、私もその中でキャッシングと最適化をオフにする必要がありました。
その後、エラーはなくなりました。