Ter múltiplas versões de uma biblioteca no sistema não é um problema na maioria das distribuições do Linux: bibliotecas compartilhadas com diferentes /usr/lib
. Além disso, os gerenciadores de pacotes podem ser instruídos a instalar várias dessas bibliotecas, especificando nomes corretos de pacotes:
apt-get install libjpeg7
apt-get install libjpeg8
Na realidade, você pode encontrar duas falhas com este sistema:
-
A maioria das distribuições fornece apenas uma versão de biblioteca por versão de distribuição para economizar espaço. Por exemplo, meu Debian Wheezy possui apenas
libjpeg8
. Ainda será possível instalar uma versão de biblioteca específica (por exemplo,libjpeg7
) das origens e ela coexistirá com outras versões sem problemas. Você pode até mesmo tentar instalar um pacote a partir de outra distribuição, mas cuidado, pois isso pode gerar muitas dependências. -
Às vezes, duas versões de bibliotecas com o mesmo soname (que são compatíveis) funcionam com alguns programas e não com outros. Essa é a principal razão para ter várias versões de distribuições, a propósito. A solução neste caso é manter bibliotecas incompatíveis fora de
/usr/lib
e torná-las acessíveis a um programa em particular via LD_LIBRARY_PATH ou chroot.