リポジトリサーバーに新しいパッケージを追加する

リポジトリサーバーに新しいパッケージを追加する

私はCentOSを使用しています。リポジトリを構築し、ここにパッケージを入れて別のサーバーでテストしましたが、すべてが正常です。

リポジトリに新しいパッケージを追加して実行するとき:

$ createrepo -v /var/www/html/centos/6.5/updates/x86_64/Packages/

マイストアを追加したサーバーから最近追加された最後のパッケージをインストールしようとしましたが、同じサーバーでこれを行うまでは機能しませんでした。

$ yum clean all

これは普通ですか?

答え1

これまでは、これは「正常な」動作であり、「yum update」を呼び出すサーバーは、リポジトリに使用可能なパッケージのキャッシュを保持します。 「yum clean all」を呼び出すと、このキャッシュが削除され、サーバーは追加したパッケージを含む、利用可能なパッケージのリストをリポジトリに再要求する必要があります。

実際に何が起こったのか

  1. システムAのリポジトリに新しいパッケージを追加します。
  2. createrepoを呼び出すと、リポジトリ情報が更新されました。
  3. マシンAのリポジトリを含むサーバーBに移動します。
  4. Bで「yum update」を呼び出します。 yumが最後に実行されたのはそれほど古くなかったため、yumはAに接続せずに(!)ローカルキャッシュのみをチェックします。なぜなら、ローカルキャッシュが数時間古いからです。あなたの新しいパッケージはそこにリストされていません
  5. 今は不安なので、Bで「yum clean all」を押してください。 [しばらくお待ちください。]
  6. B のすべてのキャッシュが削除されます。
  7. Bで「yum update」を再度呼び出すと、Bが強制的にサーバーに接続され、現在のデータをすべてインポートして新しいパッケージを表示できるようになります。

答え2

これは私にとって正しい行動のようには聞こえません。 YUMからダウンロードしたRPMは/var/cache/yum

はい

Fedora 19システムでは:

$ pwd
/var/cache/yum

すべてのディレクトリを書き留めます。各リポジトリに1つずつあります。

$ tree . -L 3 -d
.
`-- x86_64
    `-- 19
        |-- fedora
        |-- fedora-debuginfo
        |-- google-chrome
        |-- home_pstavirs_ostinato
        |-- home_tpokorra_mono
        |-- livna
        |-- livna-debuginfo
        |-- rpmfusion-free
        |-- rpmfusion-free-debuginfo
        |-- rpmfusion-free-updates
        |-- rpmfusion-free-updates-debuginfo
        |-- rpmfusion-nonfree
        |-- rpmfusion-nonfree-debuginfo
        |-- rpmfusion-nonfree-updates
        |-- rpmfusion-nonfree-updates-debuginfo
        |-- rpm-sphere
        |-- updates
        |-- updates-debuginfo
        `-- virtualbox

21 directories

関連情報