Jun17

why is there a perl.i386 in my x86_64 install

Posted by Karanbir Singh on 17/Jun/2010  ~  Posted in: Linux

A question that has come up a few times in the last week. So I thought a blog post about it is in order here. While some people are aware of the situation, most of the people are not.

In the early days of EL5, there was a perl.i386 included in the distro, which Red Hat then took away and made perl.x86_64 the only perl in the x86_64 tree. This caused a non-trivial issue to people who already had a CentOS install and wanted to maintain that install. So in order to avoid having to deal with potentially hundreds of people who would have had a broken perl setup as well as yum update issues, we decided to maintain a perl.i386 in the extras repo for c5/x86_64. This would mean that people who already had a perl.i386 on their machines would still be able to keep things the way they were - and new installs would only get the perl.x86_64 ( since the install is only run from the os/ repository, it does not come in contact with the perl.i386 in extras at all ). Yum has also become a lot smarter about its handling of arch specific packages, which would mean that people not looking for a perl.i386 by name, would not need to worry about it at all.

Think of it this way - when we had to make that decision, we asked around. Specially people who use perl in their day to day jobs and people who have non trivial contributions to cpan about the impact of perl.i386 on a x86_64 install. None of them came back to say anything that would lead us to believe perl.i386 was going to be a problem. So we took the approach of not breaking installs - and keeping the perl.i386 in a place where most people could access it.

So why the sudden interest in this issue again ? We had a perl update for CentOS-5 go out 2 days back. And this brought in some interest - since there are *still* people, three years down the road, who have perl.i386 installs! but it was a bit of our fault as well. In the specific case of perl-5.8.8-32.el5_5.1, the perl.i386 pkg into extras/x86_64 lagged by a few hours - and that resulted in *some* mirrors getting out of shape for a few hours. That was my fault completely. If you tried to do an update for perl and hit one of those mirrors, during those few hours, yum would have complained about conflicts between perl.x86_64 and perl.i386 ( of-course, only if you have perl.i386 in the first place ).

To make sure this does not happen again in the future I've plumbed in a test that checks for perl.i386 in extras/x86_64 matching perl in updates/i386/; This should ensure that we can do the update push in the future unless all the perl packages are in place first.

Keeping all this in mind, should we have taken the hit in the early CentOS-5 days and let users deal with the update issues they would almost certainly have run into ? I still think we did the right thing long term.

- KB