我有一个linux系统,我编译并安装了GCC(4.3.9)的更新版本,它存在于/ usr/lib中。安装RPM时依赖于libstdC++(GLIBCXX _...)失败
我用这个编译器来构建一套我已经打包成一个RPM库的,但是当我来到尝试安装RPM它提供了以下错误:
rpm -ivh my-rpm.i586.rpm
error: Failed dependencies:
libstdc++.so.6(GLIBCXX_3.4.10) is needed by my-rpm.i586
libstdc++.so.6(GLIBCXX_3.4.11) is needed by my-rpm.i586
libstdc++.so.6(GLIBCXX_3.4.15) is needed by my-rpm.i586
libstdc++.so.6(GLIBCXX_3.4.20) is needed by my-rpm.i586
libstdc++.so.6(GLIBCXX_3.4.9) is needed by my-rpm.i586
我知道这些符号
strings /usr/lib/libstdc++.so.6 | grep GLIBCXX
...
GLIBCXX_3.4.10
GLIBCXX_3.4.11
...
GLIBCXX_3.4.15
...
GLIBCXX_3.4.20
而且,如果我做LDD任何打包成RPM的.so文件,我可以看到,它期待的正确的libstdC++:
海合会我整理提供所以我认为我唯一的问题是让RPM的依赖解析器在正确的位置查找。 This answer意味着LD_LIBRARY_PATH是什么决定搜索路径,但在我的.bashrc中设置这似乎没有帮助(我可以看到它设置与回声在我运行rpm -i从相同的shell中)。
我需要设置(以及在哪里)让RPM安装程序了解我的libstdC++的位置?
rpm检查其他rpms的“提供”中的依赖关系,而不检查路径中安装的内容。 –