Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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?

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
1  
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:

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.

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

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.