Virtualmin install has messed up our packages

Today I hit a real problem. I needed to install httpd-devel on my CentOS 5.2. Easy enough, or at least it was:-
yum install httpd-devel

Error: Missing Dependency: httpd = 2.2.3-11.el5_1.centos.3 is needed by package httpd-devel

Seems that installing Virtualmin gave me their version of httpd:-

Removing this looks like it’s going to be hell:-

rpm -e httpd
error: Failed dependencies:
httpd-mmn = 20051115 is needed by (installed) mod_perl-2.0.2-6.3.el5.x86_64
httpd-mmn = 20051115 is needed by (installed) mod_python-3.2.8-3.1.x86_64
httpd-mmn = 20051115 is needed by (installed) mod_dav_svn-1.4.2-2.el5.x86_64
httpd-mmn = 20051115 is needed by (installed) php-5.1.6-20.el5_2.1.x86_64
httpd-mmn = 20051115 is needed by (installed) mod_ssl-2.2.3-11.el5.3vm.x86_64
httpd-mmn = 20051115 is needed by (installed) mod_fcgid-2.2-1.el5.vm.x86_64
webserver is needed by (installed) webalizer-2.01_10-30.1.x86_64
httpd >= 2.0.40 is needed by (installed) mod_python-3.2.8-3.1.x86_64
httpd is needed by (installed) system-config-httpd-
httpd is needed by (installed) mailman-2.1.9-4.el5.x86_64
httpd = 1:2.2.3-11.el5.3vm is needed by (installed) mod_ssl-2.2.3-11.el5.3vm.x86_64
httpd is needed by (installed) virtualmin-base-1.0-61.rh.noarch

So, considering this is a live server with clients websites, we can afford minimal downtime. What is going to be the best way to get back to the CentOS version?
Seems to me like I’m going to have to rip an awful lot out and have considerable downtime.

Problems aren’t just trying to install httpd-devel I’ve had issues trying to use packages from rpmforge as well because they need to build off the CentOS base packages.


P.S. Once I’ve got it all back to CentOS defaults, how do I install the latest virtualmin without it changing my httpd package?<br><br>Post edited by: cosmic, at: 2008/10/21 07:21

I’ll fix the missing httpd-devel issue in our repositories.

P.S. Once I've got it all back to CentOS defaults, how do I install the latest virtualmin without it changing my httpd package?

I suspect you probably want to think hard about replacing our httpd. We don’t provide it for fun. :wink:

Our package is a rebuild of the CentOS standard RPM with suexec_docroot set to /home, and the epoch bumped to make “upgrading” easy. So, if you replace our package with the CentOS package, you’ll need to disable suexec.

But, if you really want to do so, it’s less scary than you think:

Download the CentOS versions directly from the CentOS OS repository into a directory.

Install them with:

rpm -Uvh --oldpackage httpd*

And add "exclude=httpd*" to the virtualmin.repo file in /etc/yum.repos.d/.

But, again, I’ll fix the missing httpd-devel issue today–think about whether you really don’t want suexec before switching back to the CentOS packages.

Hmm…So, I’m confused. Our repo does have httpd-devel to match the httpd packages. Have you disabled or removed the Virtualmin yum repository?

I tried it again and saw that it was trying to install your httpd-devel-x86_64, but for some reason was also trying to install the i386 version from the CentOS base?

Checking the CentOS repository is has two httpd-devel packages:-

Your repository only has:-

I did a:-
yum install httpd-devel.x86_64

And it went on, although I get the feeling that the CentOS repository also has the i386 rpm in it’s x86_64 repository for a reason…

What is the difference between your httpd and the default CentOS httpd? Is it just the difference in suexec? Would it be ok to force install packages that complain that it’s not the CentOS httpd?

Sorry for all the questions and thanks for your quick reply.


As you can see here:-

The CentOS x86_64 repository includes both the http-devel for x86_64 and also i386.

Your rhel 5.2 x86_64 repository only includes the x86_64 version:-

I get the feeling that the i386 httpd-devel package in their x86_64 repository is the same one as in their i386 repo:-

But don’t quote me on that, as I haven’t downloaded both and done a proper comparison.

So fixing the "yum install httpd-devel" issue could be a simple as copying httpd-devel-2.2.3-11.el5.3vm.i386.rpm

Let me know what you find. Either way they must have the i386 version in their x86_64 repository for a reason.

Hmmm…I dunno. :wink:

I mean, I do know why they would include an i386 devel package–so that people can install binary-only modules for Apache, which would also require the i386 build of Apache. If you aren’t using any i386 modules in your Apache, I’d say avoid the i386 packages entirely.

You may be right about copying our i386 httpd* over. I’ll need to do some testing though, since I do not know all of the implications of that, and in the past I’ve personally run into weird and ornery problems due to mixed and matched 32 and 64 bit packages (things like docs conflicting and such).

Do you need i386 packages? If not, exclude them in the yum repo configuration file. Something like "exclude=httpd-*.i386" should do it.

I’ll look into this more…as I mentioned, I’ll have to do some testing before I can copy i386 packages into the repo. And, I’m not sure anybody needs it. I haven’t heard from anyone using i386 Apache on a 64 bit system, anyway.

I’m using 64 bit apache. But like I said and showed you CentOS include some i386 packages in their x86_64 repo. It’s only for a few packages, but httpd-devel is one of them. There must be a reason for this… Something in the x86_64 httpd must want this for it’s devel, otherwise why would RedHat/CentOS put it there?

I’ve just download both the httpd-devel i386 package from the CentOS x86_64 repo and the one from the i386 repo:-


Then ran a file comparison:-

cmp httpd-devel-2.2.3-11.el5_1.centos.3.i386.rpm httpd-devel-2.2.3-11.el5_1.centos.3.i386.rpm.1
httpd-devel-2.2.3-11.el5_1.centos.3.i386.rpm httpd-devel-2.2.3-11.el5_1.centos.3.i386.rpm.1 differ: byte 233, line 1

Seems these rpms are different. So there is a specific i386 httpd-devel rpm for x86_64 CentOS 5.2.

I have no idea what the solution is, but this is certainly an issue.

Sorry to be a pain.


the x86_64 httpd-devel rpm doesn’t contain mod_perl.h as I was expecting… Guess this might be one of the things in the i386 rpm? :s

Oops ignore my last post about mod_perl.h, that was in mod_perl-devel not httpd-devel. Although mod_perl-devel is another example of a package that has both a i386 and x86_64 bit package in the x86_86 bit repository.

Something in the x86_64 httpd must want this for it's devel, otherwise why would RedHat/CentOS put it there?

The obvious reason is so that people can build for both i386 and x86_64. If you aren’t a developer building binary packages for others, this doesn’t apply to you. The other obvious reason, as I mentioned, would be to allow people to build bindings for i386 Apache binary-only modules (I don’t know of any, but I’m sure there are some…maybe Coldfusion or some other proprietary stuff), which would, of course, mean you would need to run the i386 Apache rather than the 64 bit one.

Again, if these don’t apply to you, then you don’t need these i386 packages. :wink:

There’s certainly nothing in the i386 devel package that you would need for your 64 bit Apache.

But, since it does seem that it can cause some weirdness, even on systems that clearly do not need the i386 package, I will look into what I need to do to include one in our repo. It will take testing, however, as I have no idea what all of the implications are, or how they insure that the right version of a devel package gets installed. It sounds like in your case it wanted to install the wrong package–one that wouldn’t even work! Obviously, we don’t want to go that direction.

Joe, both packages get installed. The x86_64 httpd-devel and the i386 one. Not one of the other, by default both get installed.

yum install httpd-devel on a x86_64 CentOS running only apache httpd x86_64 will install both the httpd-devel x86_64 and the i386 pakcages. Both those packages from the CentOS base x86_64 repo specify that they need the x86_64 httpd packaged to be installed.

So the i386 httpd-devel package from the CentOS x86_64 repo:-
Specifies that it Needs the x86_64 httpd package to be installed.

I checked the CentOS forums. There are mixed responses but the only one I found from someone actually at CentOS was:-

Some of them are needed for 32-bit compatibility. Certainly there are some i386 packages installed on x86_64 systems that are unnecessary (for example, KDE stuff). If you remove them it may break stuff although if you’re running purely 64-bit applications and never need to run anything 32-bit then I’m guessing they could go. However, I’d advise against it as they’re not really doing any harm sitting there on your system.

It’s your system and your call, but if you decide to remove them do have a backup plan if it all goes horribly wrong

CentOS - The Sysadmins Choice
If you found my post useful, please consider donating to CentOS

I take is from this that the reason some i386 packages are in the x86_64 repo is some of the included components do not have a 64_bit version.

So the way I read it, I could have just the x86_64 bit httpd-devel installed, most things will work, but potentially something will not because it needs some file in the i386 rpm.