Strange i386/x86_64 behavior
Matthias Saou
thias at spam.spam.spam.spam.spam.spam.spam.egg.and.spam.freshrpms.net
Mon Apr 11 18:56:47 UTC 2005
seth vidal wrote :
> On Mon, 2005-04-11 at 20:30 +0200, Matthias Saou wrote:
> > Hi,
> >
> > I'm currently recompiling a bunch of packages for RHEL4 x86_64 and finally
> > tried out the latest mach+yum snapshot. After quite a few problems with %
> > pre scriplets failing, and packages being skipped, I finally got a build
> > root working.
> >
> > I've rebuilt quite a few packages, no problems until I tried php...
> >
> > I get a few i386 packages installed, for a reason that is beyond me! It's
> > 100% reproducible :
> >
> > - If I specify only the package names, the i386 versions get installed :-(
> >
> > I'm really confused as to why yum chooses to install those i386 files when
> > the arch isn't specified... I'll try to get yum to be more verbose and try
> > to find out.
>
> it's intended behavior.
>
> yum will install the highest version and best arch of all packages for
> each multilib 'branch' available for the specified package name.
>
> so if you just specify foo
>
> and foo.i686, foo.x86_64 and foo.i386 are available then yum will
> install:
> foo.i686
> foo.x86_64
>
> yum resolves packages to install based on the multilib sets. so 64bit
> resolved against 64bit and 32bit against 32bit. They aren't compared
> against each other.
I don't think I follow. How come I only have these few packages installed
with both x86_64 and i386? I haven't told mach or yum anything special,
and don't have glibc-devel.i386 installed for instance :
$ mach yum list glibc-devel
Setting up Repos
mach-local 100% |=========================| 951 B 00:00
os 100% |=========================| 951 B 00:00
updates 100% |=========================| 951 B 00:00
groups 100% |=========================| 1.1 kB 00:00
egwn 100% |=========================| 951 B 00:00
Reading repository metadata in from local files
mach-local: ################################################## 43/43
os : ################################################## 1591/1591
updates : ################################################## 138/138
egwn : ################################################## 40/40
Installed Packages
glibc-devel.x86_64 2.3.4-2 installed
Available Packages
glibc-devel.i386 2.3.4-2 os
Indeed, if I then do a "mach yum install glibc-devel", the i386 version
gets installed in parallel, so I think I do understand what you mean, and
my test wasn't relevant, but when all of the packages I listed are already
installed in the build root in their x86_64 form, why did mach/yum install
the i386 when nothing seems to depend explicitly on them? And why only
those few ones?
Maybe I have a clue : I did "mach -k build foo.spec" with the x86_64
packages already installed... so I guess mach told yum to install
explicitly a bunch of packages, the explicit build dependencies, thus the
i386 versions got installed in parallel to the already installed x86_64.
Does that make sense? If that's it, then it's probably to be considered a
bug since "-k" (keep) shouldn't change the installed set of packages if
all the required ones were already installed.
Matthias
--
Clean custom Red Hat Linux rpm packages : http://freshrpms.net/
Fedora Core release 3 (Heidelberg) - Linux kernel 2.6.11-1.14_FC3
Load : 0.01 0.14 0.22
More information about the Fedora-buildsys-list
mailing list