A few things you might not know about RHEL-6.1+ yum
Example commands:
Search is more user friendly
As we maintain yum we are always looking for the "minor" changes that can make a big difference to the user, and this is probably one of the biggest minor changes. As of late RHEL-5 and RHEL-6.0 "yum search" was great for finding obscure things that you knew something about but with 6.1 we've hopefully made it useful for finding the "everyday" packages you can't remember the exact name of. We did this by excluding a lot of the "extra" hits, when you get a large search result. For instance "yum search kvm manager" is pretty useless in RHEL-6.0, but in RHEL-6.1 you should find what you want very quickly.
Example commands:
yum search kvm manager yum search python url
- The updateinfo command The "yum-security" or "yum-plugin-security" package has been around since early RHEL-5, but the RHEL-6.1 update has introduced the "updateinfo" command to make things a little easier to use, and you can now easily view installed security errata (to more easily make sure you are secure). We've also added a few new pieces of data to the RHEL updateinfo data. Probably the most significant is that as well as errata being marked "security" or not they are now tagged with their "severity". So you can automatically apply only "critical" security updates, for example.
yum updateinfo list security all yum update-minimal --sec-severity=critical
Example commands:
# Lock to the version of yum currently installed. yum versionlock add yum # Opposite, disallow versions of yum currently available: yum versionlock exclude yum yum versionlock list yum versionlock delete yum\* yum versionlock clear # This will show how many "excluded" packages are in each repo. yum repolist -x .
yum has it's own DB
Again, this something that was there in RHEL-6.0 but has improved (and is likely to improve more over time). The most noticeable addition is that we now store the "installed_by" and "changed_by" attributes, this could be worked out from "yum history" before, but now it's easily available directly from the installed package.
yumdb
yumdb info yum
yumdb set installonly keep kernel-2.6.32-71.7.1.el6
yumdb sync
yumdb info yum
yumdb set installonly keep kernel-2.6.32-71.7.1.el6
yumdb sync
yum history yum history pkgs yum yum history summary yum history undo last yum history addon-info 1 config-main yum history addon-info last saved_tx
Example commands:
yum install 'config(postfix) >= 2.7.0' yum install MTA yum install '/usr/kerberos/sbin/*' yum -- install @books -javanotes
Example commands:
yum --setopt=alwaysprompt=false upgrade yum
yum-config-manager
yum-config-manager --enable myrepo
yum-config-manager --add-repo https://example.com/myrepo.repo
Working towards managing 10 machines easily
yum is the best way to manage a single machine, but it isn't quite as
good at managing 10 identical machines. While the RHEL-6.1 yum still
isn't great at this, we've made a few improvements that should help
significantly. The biggest is probably the "load-ts" command, and the
infrastructure around it, which allows you to easily create a
transaction on one machine, test it, and then "deploy" it to a number of
other machines. This is done with checking on the yum side that the
machines started from the same place (via. rpmdb versions), so that you
know you are doing the same operation.
Also worth noting is that we have added a plugin hook to the "package verify" operation, allowing things like "puppet" to hook into the verification process. A prototype of what that should allow those kinds of tools to do was written by Seth Vidal here.
Example commands:
# Find the current rpmdb version for this machine (available in RHEL-6.0) yum version nogroups # Completely re-image a machine, or dump it's "package image" yum-debug-dump yum-debug-restore --install-latest --ignore-arch --filter-types=install,remove,update,downgrade # This is the easiest way to get a transaction file without modifying the rpmdb echo | yum update blah ls ${TMPDIR:-/tmp}/yum_save_tx-* | sort | tail -1 # You can now load a transaction and/or see the previous transaction from the history yum load-ts /tmp/yum_save_tx-2011-01-17-01-00ToIFXK.yumtx yum -q history addon-info last saved_tx > my-yum-saved-tx.yumtx