How the Oracle Linux Update Channels are Structured
By Lenz Grimmer on Apr 17, 2013
Oracle Linux distribution releases are identified by a major version like "Oracle Linux 6" or "Oracle Linux 5", followed by an update release number, e.g. "Oracle Linux 6 Update 3" or "Oracle Linux 6.3" in short. Every Oracle Linux distribution release is freely available as ISO installation images from the Oracle Software Delivery Cloud (formerly known as E-Delivery), as well as individual RPM packages, broken up by update releases. These are published via "channels" (or "yum repositories") from the Unbreakable Linux Network (ULN) and our public yum repository
Security patches and critical bug fixes (errata) for individual packages that are being released in between update releases are published immediately via the corresponding _latest yum repositories and ULN channels at the same time. If you want to ensure that your system is always up to date and fully patched, make sure to have it subscribed to the _latest channel (e.g. ol6_latest). And you don't even need to purchase a support subscription for that, if you use the public yum repositories!
Update releases of a major distribution version are primarily "checkpoints", an accumulation of all patches that have been published since the last update release has been made available. They help to reduce lengthy patch/update procedures that would have to be performed if you would always have to start a new installation from the very first release of a new major version. Update releases within a major version are binary compatible. An application that was installed and tested on Oracle Linux 6.1 will still run on Oracle Linux 6.4.
In addition to the _latest channel, ULN also provides so-called _patch channels, one per update release (e.g. ol6_u4_x86_64_patch for Oracle Linux 6.4 on x86_64). These _patch channels contain all RPM updates that have been published after a new update release (e.g. 6.4) has been released. They are kept up to date with each new update package that is made available. So they allow you to keep a certain update level of the distribution up to date without risking rolling forward to a new update release version automatically (which is what happens when your system is subscribed to the _latest repository).
However, one thing to keep in mind is that these channels actually stop receiving updates once a new update release (e.g. 6.4) has been made available. At this point you need to "go with the flow" and plan your update to the next update release (and its associated _patch channel), if you don't want to risk running an un-patched system.
I'd like to give you an alternative explanation of this channel structure, using software development and source code version control as an analogy. In revision control terms, you could consider the _latest channel the "trunk" of the distribution, a stream of packages that is always up to date and also rolls forward the distribution's update version in regular intervals. The _base channels could be considered "tags" or "snapshots" of the _latest package stream. They represent the state of a major distribution version (e.g. Oracle Linux 6) at a certain point in time, identified by a minor version number (e.g. 6.3). They are being packaged and released in the form of an ISO image as well. The _patch channels could be considered "branches" that are branched off a certain tag and are being kept up to date with the "trunk" until a new update release has been tagged.
I hope this explanation helps understanding the various channels and their purposes!
- Lenz Grimmer