IUS packages will fall into two different categories.
Primary Packages: IUS packages that are newer versions of applications or languages that already exist in RHEL or EPEL. Whenever possible, these packages will be updated inline with a major upstream branch (usually the major.minor version). These packages represent the primary purpose of IUS, and thus have the highest priority and focus.
Secondary Supporting Packages: IUS packages that are required by or extend the functionality of primary packages. Common examples include PECL modules for PHP and PyPI modules for Python. Occasional we may also need a newer version of a system library in order to compile a primary package (although we try to compile against stock libraries whenever possible). Supporting packages might not replace anything in RHEL or EPEL, but sometimes do. While primary packages follow major upstream branches, secondary packages will typically only exist for the absolute latest upstream version. There can be multiple packages for the latest upstream version when the software must be built against a specfic primary package, such as programming language libraries. Updates for secondary packages might not occur as often as primary packages.
IUS packages will be one of two different types.
Configuration steps can be found in our getting started guide.
Installing IUS Packages¶
There are multiple ways to install IUS packages. The best method will depend on the type of package and whether or not the stock equivalent is already installed.
Safe Replacement Packages¶
Safe replacement packages completely replace their stock equivalents, and cannot be installed at the same time. If the stock equivalent of an IUS package is not already installed, then you can just directly install the desired package.
yum install redis30u
If the stock/EPEL equvalent of an IUS package is already installed, you must uninstall it first. If other packages depend on your installed stock package, you may need to perform the removal and installation in a single transaction. The native yum way to do this is via yum shell.
yum shell > erase mysql-libs > install mysql56u mysql56u-libs mysql56u-server mysqlclient16 > run
IUS also maintains the yum replace plugin to simplify this process. It is available in our repositories.
yum install yum-plugin-replace yum replace php --replace-with php56u
In EL7, there are a few more options that are available. Yum got an update to include the swap subcommand.
yum swap dovecot dovecot22u
Note: Dnf is not yet available in base RHEL, but has been backported to EPEL 7.
dnf --allowerasing install git2u
Parallel Installable Packages¶
Parallel packages are specifically designed to coexist with their stock equivalent. This means that they can be directly installed just like any other package.
yum install python34u
Reverting To Stock Packages¶
If you want to switch from an IUS package back to the stock equivalent, you can just reverse the process you used to install it. For example, you can switch the erase/install commands in yum shell, or change the order of package sets specified to the replace plugin.
Using Testing Repositories¶
New packages requests and package updates appear in the testing repositories before graduating to the stable repositories. While we do not recommend using the testing repositories in production, there may be a time when you need use them.
yum --enablerepo=ius-testing install php56u-pecl-uploadprogress