rawhide vs. protected multilib versions

Jim Meyering jim at meyering.net
Thu Apr 5 12:40:56 UTC 2012


I installed x86_64 F17 from the netinst.iso yesterday, selected
a minimal install, and immediately upgraded to rawhide.
Worked like a charm.

However, now that I try to use the resulting system and need a
few packages, I find that installing them is um, ... challenging.

For example, yesterday I couldn't even install gcc due to this:

    Error: Protected multilib versions: \
      libgomp-4.7.0-0.20.fc17.i686 != \
      libgomp-4.7.0-1.fc17.x86_64

Could part of the problem be that gcc requires a specific version of libgomp?
As seen in gcc.spec:

  Requires: libgomp = %{version}-%{release}

(i.e., =, not >=), yet the x86_64 libgomp installed in rawhide was too
new to meet that criterion.  The "=" caused the matching i686 version to
be pulled in, and that triggered the "protected multilib" warning.

I was able to kludge around this by removing libgomp-4.7.0-1.fc17.x86_64
and all packages that depend on it (luckily only 2 or 3).

Then, installing gcc worked fine.

------------------------------------------------------------------

However, today when I try to install g++, something similar is
happening (symptom: yum wants to install i686 packages to meet
version constraints) but this time, my work-around is not an option.

    root$ yum install --skip-broken gcc-c++                                     :
    Loaded plugins: etckeeper, fastestmirror
    Loading mirror speeds from cached hostfile
     * rawhide: fedora.mirrors.ovh.net
    Resolving Dependencies
    --> Running transaction check
    ---> Package gcc-c++.x86_64 0:4.7.0-0.20.fc17 will be installed
    --> Processing Dependency: libstdc++-devel = 4.7.0-0.20.fc17 for package: gcc-c++-4.7.0-0.20.fc17.x86_64
    --> Processing Dependency: libstdc++ = 4.7.0-0.20.fc17 for package: gcc-c++-4.7.0-0.20.fc17.x86_64
    --> Running transaction check
    ---> Package libstdc++.i686 0:4.7.0-0.20.fc17 will be installed
    --> Processing Dependency: libm.so.6(GLIBC_2.0) for package: libstdc++-4.7.0-0.20.fc17.i686
    --> Processing Dependency: libm.so.6 for package: libstdc++-4.7.0-0.20.fc17.i686
    --> Processing Dependency: libgcc_s.so.1(GLIBC_2.0) for package: libstdc++-4.7.0-0.20.fc17.i686
    --> Processing Dependency: libgcc_s.so.1(GCC_4.2.0) for package: libstdc++-4.7.0-0.20.fc17.i686
    --> Processing Dependency: libgcc_s.so.1(GCC_3.3) for package: libstdc++-4.7.0-0.20.fc17.i686
    --> Processing Dependency: libgcc_s.so.1(GCC_3.0) for package: libstdc++-4.7.0-0.20.fc17.i686
    --> Processing Dependency: libgcc_s.so.1 for package: libstdc++-4.7.0-0.20.fc17.i686
    --> Processing Dependency: libc.so.6(GLIBC_2.4) for package: libstdc++-4.7.0-0.20.fc17.i686
    --> Processing Dependency: ld-linux.so.2(GLIBC_2.3) for package: libstdc++-4.7.0-0.20.fc17.i686
    --> Processing Dependency: ld-linux.so.2 for package: libstdc++-4.7.0-0.20.fc17.i686
    ---> Package libstdc++-devel.x86_64 0:4.7.0-0.20.fc17 will be installed
    --> Processing Dependency: libstdc++(x86-64) = 4.7.0-0.20.fc17 for package: libstdc++-devel-4.7.0-0.20.fc17.x86_64
    --> Running transaction check
    ---> Package glibc.i686 0:2.15-32.fc18 will be installed
    --> Processing Dependency: libfreebl3.so(NSSRAWHASH_3.12.3) for package: glibc-2.15-32.fc18.i686
    --> Processing Dependency: libfreebl3.so for package: glibc-2.15-32.fc18.i686
    ---> Package libgcc.i686 0:4.7.0-0.20.fc17 will be installed
    ---> Package libstdc++-devel.x86_64 0:4.7.0-0.20.fc17 will be installed
    --> Processing Dependency: libstdc++(x86-64) = 4.7.0-0.20.fc17 for package: libstdc++-devel-4.7.0-0.20.fc17.x86_64
    --> Running transaction check
    ---> Package libstdc++-devel.x86_64 0:4.7.0-0.20.fc17 will be installed
    --> Processing Dependency: libstdc++(x86-64) = 4.7.0-0.20.fc17 for package: libstdc++-devel-4.7.0-0.20.fc17.x86_64
    ---> Package nss-softokn-freebl.i686 0:3.13.4-0.1.fc18.beta1.1 will be installed

    Packages skipped because of dependency problems:
        gcc-c++-4.7.0-0.20.fc17.x86_64 from rawhide
        glibc-2.15-32.fc18.i686 from rawhide
        libgcc-4.7.0-0.20.fc17.i686 from rawhide
        libstdc++-4.7.0-0.20.fc17.i686 from rawhide
        libstdc++-devel-4.7.0-0.20.fc17.x86_64 from rawhide
        nss-softokn-freebl-3.13.4-0.1.fc18.beta1.1.i686 from rawhide

Any suggestions?

Removing libstdc++ is not an option because it would remove far too
many things, including yum itself.

------------------------------------------------------------------
I guess this can be seen as my own damn fault ;-) for choosing
the netinst+minimal installation options rather than the more
mainstream "install-from-liveCD" approach...


More information about the devel mailing list