Back to top

yum-pull modifications

William Stearns created a great script called yum-pull to mirror repositories locally. As it frequently lags behind Fedora releases, I modified it to make it easier to handle new releases. I also added some additional flags to help us out locally. I removed several repositories that we never use and tried to update some of the paths that had changed in other repositories since his last release. I also dropped repositories like livna, dribble, and others that combined into rpmfusion and added that repository. I plan to keep things synchronized with Mr. Stearns yum-pull to the greatest extent possible.

Here are a list of the new options....

  • The mirroring itself makes use of a checkmirror script I wrote to reduce the number of old RPMs downloaded.
  • Add nohttp, noftp, and norsync options so you can suppress those methods if they would cause problems with your possible network proxy services.
  • Add noedu option to suppress .edu domains that tend to be a bit slow at times.
  • Set default MaxLoad to 4
  • Set KeepOldKernels to yes by default
  • Remove OpteronFallback
  • Added a configurable number of Tries instead of the default 3
  • Add option for Timeouts on directories and increase the timeout values for big RPMs on slow connections.
  • Add a PatternMatch option to allow you to pick a particular repository that you know has the desired RPMs - useful if you get timed out and other mirrors don't seem to have synchronized yet.
  • Add a Version option that specifies the version to pull. By default it is set to the version of the system that is doing the pull.
  • Add an architecture option to specify whether to pull a i386 or x86_64 option. You can still pull multiple repositories on one pull, but you can only pull one version and one architecture at once. This is different than Mr. Stearns which is much more flexible, but made it much easier to update for new releases that came out.
  • Moved all repository information to the top so it didn't have to be duplicated everywhere.
  • Added an option for each major pull to cross copy all noarch type RPMs between architectures if available so they don't have to be downloaded more than once.
  • Added an option for FindThem so that if you know there are new RPMs it will try keep trying mirrors until it downloads new files. Only use under adult supervision.
  • Removed all old options for pulling specific named distributions - use the version and architecture options now.

This script is still in development, but works pretty well here and at the company I work for. If you have any suggestions or corrections, let me know.

If you are interested in the script, it can be downloaded from yum-pull link using the password yum-pull.