Take the 2-minute tour ×

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

$ createrepo .
# ...snip...

$ rpm -q package

$ 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?

share|improve this question

5 Answers 5

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).

share|improve this answer
Is there a way to expire-cache only specific repository? –  myroslav Nov 17 at 12:52
The only easy way to do that is --disablerepo=* --enablerepo=myrepo,otherrepo ... although you can create an alias if it's something you'll do a lot. –  James Antill Nov 17 at 21:34

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


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.

share|improve this answer

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

share|improve this answer

Just had the same issue, try:

yum clean all

share|improve this answer
Please read the question carefully. I believe he was looking for an alternative method where he didn't have to clear the cache. –  slm Apr 3 '13 at 1:41
god you're so right :| –  jobano May 6 '13 at 6:44

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

yum --enablerepo=localrpmrepo clean metadata

replace localrpmrepo with your repos name

share|improve this answer
Nope, in this case, the problem is certainly that it thinks the cache is still valid and doesn't check for updates. –  Falcon Momot May 30 at 21:04

Your Answer


