如果我已经安装了GLIBCXX_4.1.2,需要GLIBCXX_3.4.9吗?

时间:2009-08-05 20:44:17

标签: linux fedora rpm libstdc++

我正在Fedora 8/9 64bits(http://mediainfo.sourceforge.net/es/Download/Fedora)上安装最新版本的MediainfoDLL。 我下载了libmediainfo-0.7.20和libzen0-0.4.3文件。

当我尝试安装libzen0时,我得到了这个输出:

# rpm -i libzen0-0.4.3-1.x86_64.Fedora_9.rpm
warning: libzen0-0.4.3-1.x86_64.Fedora_9.rpm: Header V3 DSA signature: NOKEY, key ID dfb2ef23
error: Failed dependencies:
        libstdc++.so.6(GLIBCXX_3.4.9)(64bit) is needed by libzen0-0.4.3-3.1.x86_64

但问题是我已经安装了4.1.2版本的libstdc ++:

# yum list libstdc++
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * updates-newkey: kdeforge.unl.edu
 * fedora: kdeforge.unl.edu
 * updates: kdeforge.unl.edu
Installed Packages
libstdc++.i386                                                                4.1.2-33                                                               installed
libstdc++.x86_64                                                              4.1.2-33                                                               installed

如何解决此问题?

编辑:

# rpm -q --provides libstdc++
libstdc++.so.6()(64bit)
libstdc++.so.6(CXXABI_1.3)(64bit)
libstdc++.so.6(CXXABI_1.3.1)(64bit)
libstdc++.so.6(GLIBCXX_3.4)(64bit)
libstdc++.so.6(GLIBCXX_3.4.1)(64bit)
libstdc++.so.6(GLIBCXX_3.4.2)(64bit)
libstdc++.so.6(GLIBCXX_3.4.3)(64bit)
libstdc++.so.6(GLIBCXX_3.4.4)(64bit)
libstdc++.so.6(GLIBCXX_3.4.5)(64bit)
libstdc++.so.6(GLIBCXX_3.4.6)(64bit)
libstdc++.so.6(GLIBCXX_3.4.7)(64bit)
libstdc++.so.6(GLIBCXX_3.4.8)(64bit)
libstdc++ = 4.1.2-33
libstdc++.so.6
libstdc++.so.6(CXXABI_1.3)
libstdc++.so.6(CXXABI_1.3.1)
libstdc++.so.6(GLIBCXX_3.4)
libstdc++.so.6(GLIBCXX_3.4.1)
libstdc++.so.6(GLIBCXX_3.4.2)
libstdc++.so.6(GLIBCXX_3.4.3)
libstdc++.so.6(GLIBCXX_3.4.4)
libstdc++.so.6(GLIBCXX_3.4.5)
libstdc++.so.6(GLIBCXX_3.4.6)
libstdc++.so.6(GLIBCXX_3.4.7)
libstdc++.so.6(GLIBCXX_3.4.8)
libstdc++ = 4.1.2-33

2 个答案:

答案 0 :(得分:3)

有趣的是,我看到来自rpm -q --provides libstdc++的几乎相同的输出。我怀疑您使用的 libzen0 RPM是针对libstdc ++版本编译的,而该版本实际上并未在您的操作系统上发布。

您是否为您的操作系统安装了正确版本的 libzen0 ?如果是这样;尝试为类似的操作系统安装RPM - 例如用于RHEL 5.3的libzen0?

答案 1 :(得分:1)

虽然我没有使用64位系统的经验,但看起来像rpm的一个问题:在我的系统上(Fedora 8)我得到以下内容:

$ rpm -q --provides libstdc++
libstdc++.so.6
libstdc++.so.6(CXXABI_1.3)
libstdc++.so.6(CXXABI_1.3.1)
libstdc++.so.6(GLIBCXX_3.4)
libstdc++.so.6(GLIBCXX_3.4.1)
libstdc++.so.6(GLIBCXX_3.4.2)
libstdc++.so.6(GLIBCXX_3.4.3)
libstdc++.so.6(GLIBCXX_3.4.4)
libstdc++.so.6(GLIBCXX_3.4.5)
libstdc++.so.6(GLIBCXX_3.4.6)
libstdc++.so.6(GLIBCXX_3.4.7)
libstdc++.so.6(GLIBCXX_3.4.8)
libstdc++ = 4.1.2-33

因此,如果您的libstdc ++没有像我一样提供GLIBCXX_3.4.9,我会考虑rpm被破坏。一种解决方案是创建一个需要libstdc ++并提供GLIBCXX_3.4.9的假rpm,但正确的解决方案是修复rpm本身。