On Wed, Apr 8, 2015, at 13:01, Rodrigo Cunha wrote:
> Srs, estou com uma duvida com relação ao gerenciamento de bibliotecas
> no linux. Sei que para adicionar bibliotecas no debiam, eu preciso
> adicionarum arquivo no diretorio : /etc/ld.so.conf.d/ adicionar linha,
> por linha com o diretorio das bibliotecas em questão. digamos :
> /etc/ld.so.conf.d/novalib.conf cat /etc/ld.so.conf.d/novalib.conf
> /path-to-dir-lib/ Depois disso eu executo o ldconfig ou para um
> verbose ldconfig -v Até aqui tudo bem, estou com novas libs para o
> sistema. No entanto eu gostaria de saber se teria como eu setar uma
> lib nova especificamente para um programa novo no sistema. Digo, eu
> quero instalar o pacote-xyz que precisa da lib versão beta :
> libxyz.3>, mas meu S/o já tem a libxyz.2 e roda muito bem com ela.
> Para prevenir problemas de compatibilidade com o sistema eu preciso
> setar a nova lib (libxyz.3) apenas para especificamente o pacote :
> pacote-xyz. Tem como eu fazer essa façanha no gnu?!

Executáveis contém, através de um mecanismo conhecido como RPATH, o
caminho para as libs que precisam. Quando o RPATH está vazio, o linker
procura pela biblioteca nos locais definidos em /etc/ld.so.conf.

Utilize o pacote chrpath para alterar os binários e bibliotecas do
pacote-xyz para apontar para a biblioteca que você quer.

É um rpath por entrada de objeto dinamicamente alocável que estiver
presente nos cabeçalhos ELF do binário ou da biblioteca dinâmica
(bibliotecas podem linkar com outras bibliotecas).

Mas que essa gambiarra é improvável que funcione à contento, é.

--
"One disk to rule them all, One disk to find them. One disk to bring
them all and in the darkness grind them. In the Land of Redmond where
the shadows lie." -- The Silicon Valley Tarot Henrique de Moraes
Holschuh <h...@debian.org>

Responder a