Eu consideraria isso um hack, mas usei-o em mais ocasiões do que gostaria de admitir para resolver problemas de compatibilidade com o GLIBC, como o que você está encontrando.
O hack envolve a criação de um link em /usr/lib
, que inclui o nome da biblioteca que uma determinada ferramenta deseja. O link aponta para o nome alternativo da biblioteca.
Exemplo
Digamos que eu queira criar um link para libstdc++.so.6
.
$ ls -l /usr/lib | grep libstdc++.so
lrwxrwxrwx. 1 root root 19 Dec 18 2010 libstdc++.so.6 -> libstdc++.so.6.0.14
-rwxr-xr-x 1 root root 950428 Sep 24 2010 libstdc++.so.6.0.14
Funciona assim:
$ ln -s libstdc++.so.6 libstdc++.so.6.0.15
Verificando os resultados:
$ ls -l /usr/lib | grep libstdc++.so
lrwxrwxrwx. 1 root root 19 Dec 18 2010 libstdc++.so.6 -> libstdc++.so.6.0.14
lrwxrwxrwx. 1 root root 19 Dec 18 2010 libstdc++.so.6.0.15 -> libstdc++.so.6.0.14
-rwxr-xr-x 1 root root 950428 Sep 24 2010 libstdc++.so.6.0.14
Mas não tenho certeza se esse método funcionará, já que a biblioteca ainda estará perdendo a string da versão, GLIBCXX_3.4.15
.
Se o hack for malsucedido, você provavelmente terá que morder o marcador e instalar o GLIBC em um diretório alternativo e, em seguida, substituir LD_LIBRARY_PATH
ou LD_PRELOAD
para que a execução de apenas vapor veja a biblioteca modificada.
Exemplo
$ LD_PRELOAD='mylibc.so anotherlib.so' program
Detalhes sobre como fazer isso são abordados um pouco mais aqui neste SO Q & A: Várias bibliotecas glibc em um único host .