私はテストビルドをインストールするためにローカルのyumリポジトリを設定しました。テスト目的のため、私のパッケージは<svn version number>.<date>.<time>
(例えば12345.20110908.150404
問題は、新しい RPM を作成し、それをリポジトリ ディレクトリにコピーして実行してもcreaterepo $REPO_DIR
、yum が新しい RPM を使用可能として認識しないことです。
$ cd $REPO_DIR
$ ls -1
repodata
package-12345.20110908.150404-1.x86_64.rpm
package-12345.20110908.174329-1.x86_64.rpm
$ createrepo .
# ...snip...
$ rpm -q package
package-12345.20110908.150404-1.x86_64
$ yum list --showduplicates package
Installed Packages
package.x86_64 12345.20110908.150404-1 @repo
Available Packages
package.x86_64 12345.20110908.150404-1 repo
実行してメタデータを再取得すると、更新を確認して取得できますyum clean all
が、これは、他の yum リポジトリではこれを行う必要がないため、リポジトリから何か他の操作を行う必要があることを意味するだけだと思います。
yum update
yum キャッシュを消去せずにクライアントからのみ実行できるように、ローカル リポジトリをどのように設定すればよいですか?
答え1
「yum clean expire-cache」を実行すると、yum にリポジトリをチェックするように指示するより効率的な方法になります。 ... 他に実行する必要があるのは、ローカル リポジトリの metadata_expire 値を変更することです (man yum.conf を参照)。
答え2
Yum クライアントの /etc/yum.conf に次の行を追加してみてください。
メタデータの有効期限=1分
次のコマンドを実行すると、詳細情報が表示されます。
yum.conf を実行します。
参考までに。CentOS 5 では、このパラメータはコメントアウトされています。CentOS 6.2 では、この値は 90m です。
答え3
yum clean metadata
キャッシュされた名前などだけをクリーンアップし、その後、yum は利用可能なものに関する情報を再読み込みします。
答え4
yumの--enablerepo=localrpmrepoがあなたが求めているオプションです。
yum --enablerepo=localrpmrepo clean metadata
localrpmrepoをリポジトリ名に置き換えます