x86_64, i386, and yum

James Wilkinson fedora at aprilcottage.co.uk
Wed Jul 4 19:32:11 UTC 2007


Edwin Huffstutler wrote:
> From my searching, most of these have been discussed before (several times)
> or have had various bugzillas I think, but I was just wondering if someone
> could sum up any overall action to clean up the situation.
> 
> 
> 1. "yum install foo" installs both foo.i386 and foo.x86_64.  I know this
>     has been hashed out before and declared "not a bug", but does anyone
>     actually like the way this is working?  Yes, there is a good reason for
>     it but the common case on x86_64 seems to be a misfeature.

Andreas Bernauer wrote:
> I agree with you.  You can avoid this by specifying the architecture: 
> yum install foo.x86_64

Or by putting
exclude=*i?86
in /etc/yum.conf
But this will disable updates of existing 32 bit software, too.

Edwin wrote:
> 2. If yum updates some package that has a *new* dependency that the old
>    version did not have, yum will install both arch versions of the
>    depended-upon package (see above).  When that happens with just one lib,
>    it can by chain-reaction drag in about half of a whole i386 package
>    set.  Whee.  neato.

Andreas explained:
> This does not happen to me when I specify the architecture like in  
> yum update rdesktop.x86_64
> instead of 
> yum update rdesktop
> 
> But maybe I was just lucky.

This is true. But it does mean that you have to watch what yum is doing.

Edwin also wrote:
> 3. If you have 2 arches of a package installed, and you "rpm -e" the i386
>    version, any shared files (docs, etc) get removed.  Makes it hard to
>    clean up from either of the above 2.

Andreas said:
> It does not help you, but the two packages should not have shared some
> files in the first place (or even better: put non-executable files
> into a noarch rpm).  Especially kde packages seem to not care about
> this (kdelibs, kdebase, ...).

No, Edwin is experiencing a Known RPM Bug. The packages are quite at
liberty to share (identical) files, including documentation files. This
mostly works, but RPM will remove these files when only one package is
removed, and it should not.

See, for example,
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=164518
https://www.redhat.com/archives/fedora-devel-list/2007-June/msg02408.html
which says:
    Expect memory use go up, dramatically. That's the price to pay for
    finally "fixing" the multilib %doc etc file removal bug by nuking the
    nasty skipDir hack that caused it to begin with.

https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=140055
(which suggests, again, that part of the internals of RPM will need to
be rewritten to get memory use back down).

The problem, I believe, is with the RPM libraries -- apt, smart and yum
all use this code.

Hope this helps,

James.
-- 
E-mail:     james@ | "Either the Oxford English Dictionary had gained the
aprilcottage.co.uk | power of flight, or someone was leaving a very unsubtle
                   | hint."
                   | -- www.frozenreality.co.uk/comic/bunny/index.php?id=676




More information about the fedora-list mailing list