I have a linux box on which I've compiled and installed a newer version of GCC (4.3.9), which is present in /usr/lib.
I used this compiler to build a set of libraries which I have bundled into an RPM, but when I come to try install that RPM it gives the the following errors:
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
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7635000)
The problem is that
rpm works with "metadata". The official libstdc++6 package provides:
... libstdc++.so.6(GLIBCXX_3.4.10) libstdc++.so.6(GLIBCXX_3.4.11) ...
rpm won't start investigating the installed /usr/lib/libstdc++.so.6 to see if it provides
GLIBCXX_3.4.10. Afaik there is no way to tell rpm to do so. I see multiple ways to solve this problem; in order of my preference:
AutoReqProv: no; to tell
rpmnot to scan automatically for his requirements. Of course then you might run into dependency problems; where you'll have to determine and install the dependencies manually.
--nodepsto ignore the dependencies. This might cause trouble with other dependencies (because now all dependencies will be ignored).