How do I get yum to see updates to a local repo without cleaning cache?

73,809

Solution 1

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

Solution 2

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.

Solution 3

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

Share:
73,809

Related videos on Youtube

Matt
Author by

Matt

Updated on September 18, 2022

Comments

  • Matt
    Matt over 1 year

    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?

  • slm
    slm about 11 years
    Please read the question carefully. I believe he was looking for an alternative method where he didn't have to clear the cache.
  • jobwat
    jobwat about 11 years
    god you're so right :|
  • Falcon Momot
    Falcon Momot almost 10 years
    Nope, in this case, the problem is certainly that it thinks the cache is still valid and doesn't check for updates.
  • myroslav
    myroslav over 9 years
    Is there a way to expire-cache only specific repository?
  • James Antill
    James Antill over 9 years
    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.
  • bgStack15
    bgStack15 over 7 years
    I was able to update just one repository using this statement and another one: yum --disablerepo=* --enablerepo=epel clean metadata -q; yum check-update --disablrepo=* --enablerepo=epel -q. I'll just make a bash function and be done with it!
  • jwm
    jwm over 4 years
    This is somewhat old, but I just ran into this. You can set this value for a single repository by editing the /etc/yum.repos.d/my.repo file.