Bug 484897 - Anaconda fails to install when repository contains both x86_64 and i386 grub package
Anaconda fails to install when repository contains both x86_64 and i386 grub ...
Status: CLOSED NOTABUG
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: anaconda (Show other bugs)
5.3
All Linux
low Severity medium
: rc
: ---
Assigned To: Anaconda Maintenance Team
Release Test Team
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2009-02-10 10:50 EST by Yves-Alexis Perez
Modified: 2009-02-17 11:34 EST (History)
0 users

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2009-02-11 09:47:15 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Yves-Alexis Perez 2009-02-10 10:50:20 EST
Description of problem:

Hi,

we are trying to setup a kickstart network install for rhel 5.3 on our internal, private network. It's working fine on rhel 5.2, but for rhel 5.3 I try to setup a common repository with i386/ x86_64/ (stable, 5.2 at the moment) folders, and updates/ (for security upgrades, 5.3 packages and future updates). The updates/ has both i386 and x86_64 packages to save room, as it seem that x86_64 needs a lot of i386 packages too.

I've started from the same ks.cfg file as 5.2, using the correct (i386 or x86_64) stage2.img, and i386 does work fine, while x86_64 fails when starting installing packages. The error is conflict related, logs show:

file conflict: file /sbin/grub conflicts between attempted installs of grub-0.97-13.2.i386 and grub-0.97-13.2.x86_64
(and few more).

I've tried to add conflict in ks.cfg so x86_64 doesn't try to install the i386 grub package, which will obviously fails if it tries to install x86_64 too.
But adding stuff like:
-grub*i386

in ks.cfg doesn't work, and it seems there is no way to tell kickstart and yum inside kickstart to prefer x86_64 stuff over i386.

Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1. Try to install using a repository with both i386 and x86_64 grub
2. 
3.
  
Actual results:

Anaconda fails with file conflicts

Expected results:

Anaconda (or yum) should have preferred the x86_64 variant.

Additional info:

I've tried to look at kickstart guide at http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5/html/Installation_Guide/s1-kickstart2-options.html but nothing seems architecture-related.

The problem occurrs with grub but I guess it will appear with all the packages present for both arch.

Many thanks for any help,
--
Yves-Alexis Perez
Comment 1 Chris Lumens 2009-02-11 09:47:15 EST
Right, you will get these error messages for any packages that are present for both architectures.  Basically, anaconda here is telling you that there is an error with your repository and it cannot be used as an installation source.  You can't have two packages that provide the same files as part of the same RPM transaction - that's a file conflict.  You will need to separate them out in order to do an installation.

The reason you can't work around this with a glob in the kickstart file is that RPM still has to perform a sanity check on the repo and it's catching this problem before we can even start installing packages.
Comment 2 Yves-Alexis Perez 2009-02-11 10:23:54 EST
Well, it seems that the x86_64 repository needs to contain some i386 packages. I'd like not to have them in both an x86_64/ and i386/ folders, nor to maintain an hardlink farm. Is there a clean solution?
Comment 3 Yves-Alexis Perez 2009-02-12 10:44:53 EST
And btw after install yum has no problem installing both arch for a package.

I don't know why x86_64 is not enough for it, and it's inconsistent with the behavior during install.
Comment 4 Chris Lumens 2009-02-17 11:09:31 EST
Right, the x86_64 repo does contain certain i386 packages, but those are typically devel packages in which case some files go into /usr/lib and some into /usr/lib64.  So the files do not actually conflict.

I don't know of a cleaner way to do this.  Our official repos are completely separated out by architecture.
Comment 5 Yves-Alexis Perez 2009-02-17 11:34:01 EST
On rhel 5.3 x86_64 dvd there's about 500M of i386 rpm packages, with stuff like xulrunner, qt, gtk stuff like that. Not really *devel* stuff. 

Ok, those are still libs, which you put in /usr/lib and /usr/lib64 so they won't conflict. Point taken.

What about hal (which exists in i386 and x86_64 versions on the rhel5 x86_4 dvd)? or gconf?

Those are applications, with stuff in /usr/bin. But I guess they are not installed at first stage, but later, with yum/rpm able to install both arches.

So it's clearly not consistent, and while it can be convenient to install multiple arches for one package (especially libs), install should default to x86_64 (or $whatever_preferred_arch maybe).

Cheers, and thanks for your time.

Note You need to log in before you can comment on or make changes to this bug.