Why are IUS Packages named differently

Created by BJ Dierkes
Keywords:

There is great debate around the naming conventions used for IUS Packages. For example the equivalent of ‘mysql’ in IUS is mysql50, or mysql51, etc. The reason for this is simple, if the name of the package was the same as the stock package then as soon as you subscribed to the IUS Repositories your system would update nearly every package in the repo. This is what we call ‘bad joojoo’. The majority of IUS users want to upgrade something specific like mysql, php, etc… not everything. Additionally, the naming convention also allows us to offer multiple branches of software via the same repository as well. Meaning, you subscribe once and are always one install away from installing the latest that IUS has to offer.

The alternative is to maintain multiple repositories for every package set. So rather than having all packages in one repository, you would have a repository for php52, php53, mysql50, mysql51, python26, etc… not too mention all the supporting packages that might not warrant their own repository like php-pear18, or mysqlclient15.

Another major reason is for compatibility (or clarity) when mixing with other repos. for example when subscribing a RHEL box to EPEL, which has a number of php-pecl-XXX packages. All php-pecl packages in EPEL are built against stock php-5.1.6. If I introduced another repository with php-5.2.x in it and the packages were still named ‘php’ that would be quite confusing, not to mentioned incompatible since the php-pecl packages in EPEL wouldn’t work. Having an alternative name makes it clear that php52 is not php.

Long story short, from a packaging stand point, we have decided that this is the best way to maintain packages for IUS based on our package sets. Ease of installation might feel a bit janky or cumbersome, but if you look at it from the stance of long term use and supportability of IUS it really isn’t that bad.