Issue: 在 openSuSE 11, 12, 13的某些版本中,通过yast安装 git 工具包,会遇到类似问题:
Problem: solvable libstdc++6-4.8.1_20130909-3.2.1.i586 conflicts with libstdc++6 provided by itself
—-
Why do some packages conflict with themselves?
“Oneiric supports Multi-Arch, that is, allowing you to install packages of different architectures simultaneously (currently i386 and amd64 a.k.a. 32-bit and 64-bit). Some packages cannot be installed simultaneously (like libc6:i386 and libc6:amd64). aptitude
cannot handle these cases and therefore thinks that it may be a good idea to remove those packages. It’s recommended to use apt-get
now.”
—-
解决办法:
Package conflicting with itself?
>> You somehow need an upgraded zypp stack, which will ignore the self >> conflict. > > Yeah, but it's kind of tough as the new zypp stack requires new libstdc++ > and a bunch of other things which I don't really want to force install. Can't you just force-install libstdc++6-4.8.1_20130909-3.2.1.i586?
强制重新安装
libstdc++6-4.8.1_20130909-3.2.1.i586
shell> wget “ftp://bo.mirror.garr.it/pub/1/opensuse/distribution/13.1/repo/oss/suse/i586/libstdc++6-4.8.1_20130909-3.2.1.i586.rpm”
shell> rpm -ivh –nodeps –force libstdc++6-4.8.1_20130909-3.2.1.i586.rpm
然后再安装 perl相关的一些工具包
shell> zypper -v install –force-resolution yast2-perl-bindings
之后可能会碰到一些其他异常或者丢失,缺啥少啥补啥。
这一过程中,还可能遇到 yast 无法使用,或者
shell> perl -MCPAN -eshell
无法调用的情况,均是由于在安装过程中 libstdc++ 的版本问题遇到故障,可以在解决上来上面的问题之后,重新安装 perl 即可。
本质上,每个软件的版本都有与之同期的对应的版本相配合,跨时期的软件版本很难融合。这是本次,也是上次 apache 和 resin融合遇到的问题的共同特征。