SolengTech‎ > ‎Open Source‎ > ‎

HowTo: Yum Upgrade with New RPM Package compression

YUM and RPM work well, keep the system stable, and shouldn't need to change...At this point in time, there are a number of reasons that caused me to revisit this, and make some worthwhile changes.

YUM and RPM have been changing, packages like adobe flash/shockwave are distributed and updated with their own yum repos. To manage this, a few more packages are available. Here are the updates to yum I've needed and why.

RPM packages use new compression method

RPM and YUM must be updated between FC11, and FC12. The reason is that all FC12 and beyond packages use a compression format which isn't supported on earlier versions of RPM. If you hit a package with the new compression, it doesn't get installed, leading to package conflicts...might as well get it over with now.

yum -y update yum rpm

Increase YUM download, and query speed

There are some new plugins that speedup downloads, and queries (i.e. yum list) that aren't standard until FC12. It is worthwhile to install on these on earlier distros when available. Presto reduces download size. After a package set for install or update is selected, Presto reduces the download required to a compressed number of bytes. Fastest mirror tests the speed of all mirrors for each repo, saves the fastest mirrors. This is great when using yum list, provides, search to find available packages.
yum -y install yum-plugin-fastestmirror yum-presto

Managing Multiple YUM repos

When you start adding more repos, it's possible to update, bring in a new package where the dependencies come in from different distros, and make a big mess. In terms of Fedora, you may have a forward looking distro like rawhide, or one of the rpmfusions that can bring in a future package with dependencies that break the system. With CentOS, and RHEL, the packages are older, and some new ones may need to be brought in so that, in my case, subversion could be used on code bases currently out on the net.

The yum priorities plugin allows you to select which repos are resolved first so that others in the future or past don't break the stable version where your system is running. All you do is edit the repo's in /etc/yum.repos.d, and add a line PRIORITY=1 for the repositories making the stable version, and higher numbers to others.

Eventually, using multiple repo's and such, half of a new distro will come in, an lots of things stop working. Yum utils has nice things to deal with this like package-cleanup (problems, dupes), yum-complete-transaction (when the network connection drops).

And sometimes, when you absolutely must have source code, yumdownloader is the answer for package source rpm's.

yum -y install yum-plugin-priorities yum-utils yum-protectbase
With yum-protectbase, you can add PROTECT=0 lines to unprotect extra repositories. By default, once you install all repos are protected from cross updating the others. You only need to protect the base repo, and all other repo's should be unprotected. It is a variation of priority, but may be easier to manage.