22

I have set up a local yum repository which I use to install test builds. For the testing purposes, my packages are versioned by <svn version number>.<date>.<time> (e.g. 12345.20110908.150404

The trouble is, once I make a new RPM, copy it to the repository directory and run createrepo $REPO_DIR, yum does not see the new RPM as being available.

$ 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

I can see the updates and grab them if I run yum clean all and then re-fetch the metadata, but I think this just means I need to be doing something else from the repo, as I don't have to do that for other yum repos.

How do I need to set up my local repository so that I only need to run yum update from the client without having to clean my yum cache?

Matt
  • 321

5 Answers5

27

You can run "yum clean expire-cache" which is much more efficient way to tell yum to check the repos. ... the other thing to do would be to change the metadata_expire value for the local repo. (see man yum.conf).

11

Try adding following line in /etc/yum.conf on Yum clients:

metadata_expire=1m

Following command shows you more info:

man yum.conf

FYI. CentOS 5 has the parameter commented out. CentOS 6.2 has 90m for the value.

2oahu.com
  • 111
  • 1
  • 2
4

yum clean metadata cleans up just the cached names and such, after which yum reloads its idea of what is available.

Asclepius
  • 1,162
vonbrand
  • 2,509
1

Just had the same issue, try:

yum clean all

jobwat
  • 329
0

yum's --enablerepo=localrpmrepo is the option you are after. so

yum --enablerepo=localrpmrepo clean metadata

replace localrpmrepo with your repos name

Neil
  • 11