Definir LD_LIBRARY_PATH antes de executar um aplicativo de um terminal não tem efeito

3

Eu tenho várias compilações de um aplicativo no meu sistema (uma compilação de desenvolvimento e muitas compilações antigas). Quando estou tentando executar uma versão mais antiga, o sistema invariavelmente pega as bibliotecas dinâmicas da compilação do desenvolvedor.

De /home/franz/Projects/appleseed/archives/releases/1.1.0-alpha-14-0-g4e46ed9/appleseed/bin , que é o diretório da versão mais antiga que estou tentando executar:

$ ldd appleseed.studio 
    [stuff omitted]
libappleseed.so => /home/franz/Projects/appleseed/build/linux-gcc4/appleseed/libappleseed.so (0x00007fbcb090b000)
libappleseed.shared.so => /home/franz/Projects/appleseed/build/linux-gcc4/appleseed.shared/libappleseed.shared.so (0x00007fbcb030c000)
    [more stuff omitted]

( /home/franz/Projects/appleseed/build/linux-gcc4/appleseed/ é o caminho para minha compilação de desenvolvimento).

Naturalmente, devo definir LD_LIBRARY_PATH corretamente antes de executar uma versão mais antiga:

$ export LD_LIBRARY_PATH=/home/franz/Projects/appleseed/archives/releases/1.1.0-alpha-14-0-g4e46ed9/appleseed/bin ; ./appleseed.studio

( LD_LIBRARY_PATH está inicialmente vazio, então não me incomodo com a concatenação.)

No entanto, isso não funciona e o sistema continua a pegar a compilação dev das bibliotecas dinâmicas.

Estou fazendo algo errado? Alguma idéia?

Estou executando uma versão de 64 bits do Ubuntu 10.10 Maverick Meerkat (sem suporte a partir de abril de 2012).

ATUALIZAÇÃO: atualizei meu sistema para o Ubuntu 11.10 (Natty) e o problema persiste.

    
por François Beaune 13.09.2012 / 13:01

1 resposta

0

  1. Certifique-se de que sob

    /home/franz/Projects/appleseed/archives/releases/1.1.0-alpha-14-0-g4e46ed9/appleseed/bin
    

    você realmente tem as bibliotecas compartilhadas que deseja carregar. Eles estão realmente no diretório bin/ do arquivo? Não lib/ ?

  2. Tente

    /lib/ld-linux.so.2 --library-path /home/franz/Projects/appleseed/archives/releases/1.1.0-alpha-14-0-g4e46ed9/appleseed/bin ./appleseed.studio
    

    Você pode usar as opções desse programa para controlar e depurar o processo de carregamento da biblioteca.

por January 13.09.2012 / 13:40