いくつかのリポジトリ(RHELリポジトリのコピー、社内で作成されたプログラムなど)を含む内部yumサーバーがあります。内部システムはインターネットからファイアウォールで保護されているため、内部サーバーのみを使用できます。
実稼働stable環境にプッシュする前にパッチをテストするために、デフォルトで有効になっているレポジトリがあります。更新はすべて-latestレポに入れられます。サーバーにパッチを-latest適用する場合、その-repoを使用して新しいベースラインを作成し、いくつかのサーバーでテストします。テストしたら、そのベースラインを新しいものにしstableます。-latestレポ取引は、デフォルトでは無効になっています。
リポジトリの1つは、epelやrpmforgeなどから取得するいくつかのパッケージに使用されます。必要な依存関係と必要なパッケージのみを同期するスクリプトがあります。リポジトリは、パッケージが同期された後、createrepoで毎晩再構築されます。これらのパッケージはテストされていないため、int-optional-latest通常は無効になっているリポジトリに配置されます。サーバーがそのリポジトリからのパッケージを必要とする場合、を使用してインストールしenable-repo=int-optional-latestます。
今日、同僚がperl-Excel-Writer-XLSXをサーバーにインストールしようとしていました。サーバーはパッケージを見つけられませんでした。createrepoを使用してリポジトリを再構築し、repodataファイルをgrepしてファイルがそこにあることを確認しました。そうだった。また、ファイルがリポジトリ内に存在することを確認しました
repoquery -q --repoid=int-optional-latest -l perl-Excel-Writer-XLSX
また、クライアント側のメタデータキャッシュを消去しました。
sudo yum clean expire-cache
それにもかかわらず、クライアントはパッケージがサーバー上に存在しないと主張し続けました。
別のマシンから検索しようとすると、パッケージが見つかったため、サーバー側に問題があるとは思わない。リポジトリファイルが正しいこと、および名前yum.example.comが両方のサーバーで同じIPアドレスに解決されていることを確認しましたが、一方のサーバーはパッケージを見つけることができ、もう一方は見つけることができません。