いくつかのリポジトリ(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アドレスに解決されていることを確認しましたが、一方のサーバーはパッケージを見つけることができ、もう一方は見つけることができません。