Титла: Version conflict Публикувано от: spec1 в Jan 20, 2008, 15:24 Сигурно и на вас ви се е случвало да не можете да стартирате
някоя програма заради конфликт от типа: ....: version 'GLIBC <versia>' not found (required by .... Разполагате само с изпълними файлове (нямате подръка сорс-кода). Как може да се 'кракне' съотв.програма, за да работи . Титла: Version conflict Публикувано от: triplek в Jan 20, 2008, 17:12 С какво дистро си??
Титла: Version conflict Публикувано от: ivo1204 в Jan 20, 2008, 17:48 По принцип може , но със “С” библиотеките са свързани всички други , та нещата са заплетени.
Нека примерно твоята програма се казва “my_program”. Виж първо какви библиотеки ползва: #ldd my_program .............................. libc.so.6 => /lib/libc.so.6 libdl.so.2 => /lib/libdl.so.2 <----------- ........................... Обаче ако дадем: # ldd /lib/libdl.so.2 .................................... libc.so.6 => /lib/libc.so.6 ................................ Вижда се , libdl.so.2 пак зависи от libc.so.6 . (ld-linux -ХХХХ не зависи от libc.so.6 .....) Така че , в никой случай не пипай /lib/libc.so.6 ! Направи си друга директория , да кажем /opt/my/lib и там сложи други версии на libc.so.6 и другите , който ти трябват. #ldconfig -n /opt/my/lib След това експортирай променливата “LD_LIBRARY_PATH” , та да хване тия библиотеки и трябва да стартираш така: #export LD_LIBRARY_PATH=/opt/my/lib:$ LD_LIBRARY_PATH #my_program Разбира се , няма гаранция за успех , но това е начина. И по принцип , подхода е грешен , по добре си прекомпилирай програмата , или я потърси със същите glibc , по лесно и с по голям шанс за успех ще имаш , ако glibc е същата , но някоя друга прави проблем. |