私はCentOSを使用しています。リポジトリを構築し、ここにパッケージを入れて別のサーバーでテストしましたが、すべてが正常です。
リポジトリに新しいパッケージを追加して実行するとき:
$ createrepo -v /var/www/html/centos/6.5/updates/x86_64/Packages/
マイストアを追加したサーバーから最近追加された最後のパッケージをインストールしようとしましたが、同じサーバーでこれを行うまでは機能しませんでした。
$ yum clean all
これは普通ですか?
答え1
これまでは、これは「正常な」動作であり、「yum update」を呼び出すサーバーは、リポジトリに使用可能なパッケージのキャッシュを保持します。 「yum clean all」を呼び出すと、このキャッシュが削除され、サーバーは追加したパッケージを含む、利用可能なパッケージのリストをリポジトリに再要求する必要があります。
実際に何が起こったのか
- システムAのリポジトリに新しいパッケージを追加します。
- createrepoを呼び出すと、リポジトリ情報が更新されました。
- マシンAのリポジトリを含むサーバーBに移動します。
- Bで「yum update」を呼び出します。 yumが最後に実行されたのはそれほど古くなかったため、yumはAに接続せずに(!)ローカルキャッシュのみをチェックします。なぜなら、ローカルキャッシュが数時間古いからです。あなたの新しいパッケージはそこにリストされていません
- 今は不安なので、Bで「yum clean all」を押してください。 [しばらくお待ちください。]
- B のすべてのキャッシュが削除されます。
- 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