Wednesday Apr 17, 2013

How the Oracle Linux Update Channels are Structured

Beer Taps by Jamie C2009, on Flickr
"Beer Taps" by Jamie C2009 (CC BY 2.0).

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

Follow me on:
Personal Blog | Facebook | Twitter | Linux Blog |

Friday Mar 23, 2012

How to subscribe to the free Oracle Linux errata yum repositories

Now that updates and errata for Oracle Linux are available for free (both as in beer and freedom), here's a quick HOWTO on how to subscribe your Oracle Linux system to the newly added yum repositories on our public yum server, assuming that you just installed Oracle Linux from scratch, e.g. by using the installation media (ISO images) available from the Oracle Software Delivery Cloud

You need to download the appropriate yum repository configuration file from the public yum server and install it in the yum repository directory. For Oracle Linux 6, the process would look as follows: as the root user, run the following command:

[root@oraclelinux62 ~]# wget \
-P /etc/yum.repos.d/
--2012-03-23 00:18:25--
Connecting to||:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1461 (1.4K) [text/plain]
Saving to: “/etc/yum.repos.d/public-yum-ol6.repo”

100%[=================================================>] 1,461       --.-K/s   in 0s      

2012-03-23 00:18:26 (37.1 MB/s) - “/etc/yum.repos.d/public-yum-ol6.repo” saved [1461/1461]
For Oracle Linux 5, the file name would be public-yum-ol5.repo in the URL above instead. The "_latest" repositories that contain the errata packages are already enabled by default — you can simply pull in all available updates by running "yum update" next:
[root@oraclelinux62 ~]# yum update
Loaded plugins: refresh-packagekit, security
ol6_latest                                                    | 1.1 kB     00:00     
ol6_latest/primary                                            |  15 MB     00:42     
ol6_latest                                                               14643/14643
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package at.x86_64 0:3.1.10-43.el6 will be updated
---> Package at.x86_64 0:3.1.10-43.el6_2.1 will be an update
---> Package autofs.x86_64 1:5.0.5-39.el6 will be updated
---> Package autofs.x86_64 1:5.0.5-39.el6_2.1 will be an update
---> Package bind-libs.x86_64 32:9.7.3-8.P3.el6 will be updated
---> Package bind-libs.x86_64 32:9.7.3-8.P3.el6_2.2 will be an update
---> Package bind-utils.x86_64 32:9.7.3-8.P3.el6 will be updated
---> Package bind-utils.x86_64 32:9.7.3-8.P3.el6_2.2 will be an update
---> Package cvs.x86_64 0:1.11.23-11.el6_0.1 will be updated
---> Package cvs.x86_64 0:1.11.23-11.el6_2.1 will be an update


---> Package yum.noarch 0:3.2.29-22.0.1.el6 will be updated
---> Package yum.noarch 0:3.2.29-22.0.2.el6_2.2 will be an update
---> Package yum-plugin-security.noarch 0:1.1.30-10.el6 will be updated
---> Package yum-plugin-security.noarch 0:1.1.30-10.0.1.el6 will be an update
---> Package yum-utils.noarch 0:1.1.30-10.el6 will be updated
---> Package yum-utils.noarch 0:1.1.30-10.0.1.el6 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

 Package                     Arch    Version                       Repository   Size
 kernel                      x86_64  2.6.32-220.7.1.el6            ol6_latest   24 M
 kernel-uek                  x86_64  2.6.32-300.11.1.el6uek        ol6_latest   21 M
 kernel-uek-devel            x86_64  2.6.32-300.11.1.el6uek        ol6_latest  6.3 M
 at                          x86_64  3.1.10-43.el6_2.1             ol6_latest   60 k
 autofs                      x86_64  1:5.0.5-39.el6_2.1            ol6_latest  470 k
 bind-libs                   x86_64  32:9.7.3-8.P3.el6_2.2         ol6_latest  839 k
 bind-utils                  x86_64  32:9.7.3-8.P3.el6_2.2         ol6_latest  178 k
 cvs                         x86_64  1.11.23-11.el6_2.1            ol6_latest  711 k


 xulrunner                   x86_64  10.0.3-1.0.1.el6_2            ol6_latest   12 M
 yelp                        x86_64  2.28.1-13.el6_2               ol6_latest  778 k
 yum                         noarch  3.2.29-22.0.2.el6_2.2         ol6_latest  987 k
 yum-plugin-security         noarch  1.1.30-10.0.1.el6             ol6_latest   36 k
 yum-utils                   noarch  1.1.30-10.0.1.el6             ol6_latest   94 k

Transaction Summary
Install       3 Package(s)
Upgrade      96 Package(s)

Total download size: 173 M
Is this ok [y/N]: y
Downloading Packages:
(1/99): at-3.1.10-43.el6_2.1.x86_64.rpm                       |  60 kB     00:00     
(2/99): autofs-5.0.5-39.el6_2.1.x86_64.rpm                    | 470 kB     00:01     
(3/99): bind-libs-9.7.3-8.P3.el6_2.2.x86_64.rpm               | 839 kB     00:02     
(4/99): bind-utils-9.7.3-8.P3.el6_2.2.x86_64.rpm              | 178 kB     00:00     


(96/99): yelp-2.28.1-13.el6_2.x86_64.rpm                      | 778 kB     00:02     
(97/99): yum-3.2.29-22.0.2.el6_2.2.noarch.rpm                 | 987 kB     00:03     
(98/99): yum-plugin-security-1.1.30-10.0.1.el6.noarch.rpm     |  36 kB     00:00     
(99/99): yum-utils-1.1.30-10.0.1.el6.noarch.rpm               |  94 kB     00:00     
Total                                                306 kB/s | 173 MB     09:38     
warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Retrieving key from
Importing GPG key 0xEC551F03:
 Userid: "Oracle OSS group (Open Source Software group) "
 From  :
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating   : yum-3.2.29-22.0.2.el6_2.2.noarch                                1/195 
  Updating   : xorg-x11-server-common-1.10.4-6.el6_2.3.x86_64                  2/195 
  Updating   : kernel-uek-headers-2.6.32-300.11.1.el6uek.x86_64                3/195 
  Updating   : 12:dhcp-common-4.1.1-25.P1.el6_2.1.x86_64                       4/195 
  Updating   : tzdata-java-2011n-2.el6.noarch                                  5/195 
  Updating   : tzdata-2011n-2.el6.noarch                                       6/195 
  Updating   : glibc-common-2.12-1.47.el6_2.9.x86_64                           7/195 
  Updating   : glibc-2.12-1.47.el6_2.9.x86_64                                  8/195 


  Cleanup    : kernel-firmware-2.6.32-220.el6.noarch                         191/195 
  Cleanup    : kernel-uek-firmware-2.6.32-300.3.1.el6uek.noarch              192/195 
  Cleanup    : glibc-common-2.12-1.47.el6.x86_64                             193/195 
  Cleanup    : glibc-2.12-1.47.el6.x86_64                                    194/195 
  Cleanup    : tzdata-2011l-4.el6.noarch                                     195/195 

  kernel.x86_64 0:2.6.32-220.7.1.el6                                                 
  kernel-uek.x86_64 0:2.6.32-300.11.1.el6uek                                         
  kernel-uek-devel.x86_64 0:2.6.32-300.11.1.el6uek                                   

  at.x86_64 0:3.1.10-43.el6_2.1                                                      
  autofs.x86_64 1:5.0.5-39.el6_2.1                                                   
  bind-libs.x86_64 32:9.7.3-8.P3.el6_2.2                                             
  bind-utils.x86_64 32:9.7.3-8.P3.el6_2.2                                            
  cvs.x86_64 0:1.11.23-11.el6_2.1                                                    
  dhclient.x86_64 12:4.1.1-25.P1.el6_2.1                                             


  xorg-x11-server-common.x86_64 0:1.10.4-6.el6_2.3                                   
  xulrunner.x86_64 0:10.0.3-1.0.1.el6_2                                              
  yelp.x86_64 0:2.28.1-13.el6_2                                                      
  yum.noarch 0:3.2.29-22.0.2.el6_2.2                                                 
  yum-plugin-security.noarch 0:1.1.30-10.0.1.el6                                     
  yum-utils.noarch 0:1.1.30-10.0.1.el6                                               


At this point, your system is fully up to date. As the kernel was updated as well, a reboot is the recommended next action.

If you want to install the latest release of the Unbreakable Enterprise Kernel Release 2 as well, you need to edit the .repo file and enable the respective yum repository (e.g. "ol6_UEK_latest" for Oracle Linux 6 and "ol5_UEK_latest" for Oracle Linux 5) manually, by setting enabled to "1". The next yum update run will download and install the second release of the Unbreakable Enterprise Kernel, which will be enabled after the next reboot.






Wednesday Jun 15, 2011

Pimp my Ride - Installing Additional Packages on Oracle Linux

Lee Cannon: Wings Wheels 2010
"Wings Wheels 2010" by Lee Cannon (CC BY-SA 2.0).

Oracle Linux already ships with an impressive amount of software packages which can be downloaded from our public Yum server.

For example, adding the external package repository for Oracle Linux 6.1 is a trivial task:

  1. Download and copy the appropriate yum configuration file in place, by running the following command as root:
    # wget -O /etc/yum.repos.d/public-yum-ol6.repo \
  2. Now edit the file using your favorite text editor and enable the appropriate repository ([ol6_u1_base] in our case) by changing the value of the enabled variable from 0 to 1.
  3. Now you can run yum list all to get a full list of all available packages. You can install them by running yum install <packagename>
However, being a distribution with a focus on the enterprise and data center, the package selection is limited to this scope. If you are looking for additional packages, you would have to either compile them from source or download pre-built binaries from an external package repository.

Enter EPEL, the "Extra Packages for Enterprise Linux" repository. According to their extensive FAQ, EPEL "is a volunteer-based community effort from the Fedora project to create a repository of high-quality add-on packages that complement the Fedora-based Red Hat Enterprise Linux (RHEL) and its compatible spinoffs, such as CentOS and Scientific Linux.".

Oracle Linux is based on RHEL, too, and is 100% userland-compatible with it. Therefore any package available from EPEL will install and run just fine, giving you access to a large pool of additional software. However, please keep in mind that this software is not covered by any Oracle Linux Support agreement you may have!

You can add and enable the EPEL repository by performing the following steps (as the root user):

  1. Download and install the repository package which includes the appropriate repository information for your version of Oracle Linux:
    rpm -Uvh
  2. The repository is automatically enabled, which you can verify by running yum repolist.
  3. To get a listing of all the additional packages you now have access to, run yum list available | grep epel | less.
  4. Now simply run yum install <packagename> to install any of the additional packages (over 4800 for Oracle Linux 6, last time I counted!).

See more articles about Oracle Linux at the Oracle Linux Blog!


Rick Ramsey
Kemer Thomson
and members of the OTN community


« April 2014
Blogs We Like