У меня есть Linux-ящик, на котором я скомпилировал и установил более новую версию GCC (4.3.9), которая присутствует в/usr/lib.Неисправная зависимость от libstdC++ (GLIBCXX _...) при установке RPM
Я использовал этот компилятор для создания набора библиотек, которые я сгруппированных в 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 на любом из .so файлов, упакованных в RPM я могу увидеть, что он ожидает правильный libstdC++:
ldd BUILDROOT/usr/lib/libfoo.so
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7635000)
Так что, я думаю, что моя единственная проблема - заставить преобразователя зависимости RPM искать в нужном месте. This answer подразумевает, что LD_LIBRARY_PATH определяет, что путь поиска, но установка этого в моем .bashrc, похоже, не помогла (и я вижу, что он установлен с эхом в той же оболочке, с которой я запускаю rpm -i).
Какие переменные мне нужно установить (и где), чтобы установить установщик RPM, чтобы понять, где находится мой libstdC++?
rpm проверяет зависимости в 'обеспечения' других rpms, а не на том, что установлено на вашем пути. –