App instalado em ~ / usr é iniciado a partir do terminal, mas não do menu Applications (ou por que a configuração ld_library_path no .profile não funciona como deveria)

4

Eu construí e instalei um aplicativo em um diretório de minha escolha, digamos, em /home/jim/usr , então os arquivos foram colocados em três e quatro pastas, todas sob essa pasta $HOME/usr (por exemplo, bin , include , lib , share , etc.).

Eu posso lançar este aplicativo a partir da linha de comando, bem como adicionei os caminhos adequados para minhas variáveis de ambiente PATH e LD_LIBRARY_PATH in ~/.bashrc .

Eu adicionei os mesmos caminhos para o arquivo ~/.profile , que, se não me engano, deve ser analisado pelo Ubuntu.

Não funciona. Nada. Onde posso ir de lá?

EDIT: Eu efetuei logout / in e reiniciei meu computador. Ambos não mudaram nada. O problema parece vir do fato de que não importa o que eu faça, a variável de ambiente LD_LIBRARY_PATH não é passada corretamente para o Ubuntu.

Usando arquivos de log, descobri que o aplicativo que estou tentando executar neste exemplo não encontra uma das dependências localizadas em ~/usr/lib .

Uma solução seria adicionar a pasta /home/jim/usr/lib dentro de um arquivo localizado em /etc/ld.so.conf.d/ , mas não tenho direitos de administrador nesta máquina.

Como um script wrapper como este funciona:

#!/bin/bash
export LD_LIBRARY_PATH=$HLOC/usr/lib
application &> $HOME/application_messages.log

mas isso me forçaria a envolver todos os meus aplicativos compilados em casa com esse script. Alguma idéia?

Por que o Ubuntu / Gnome remove a variável de ambiente LD_LIBRARY_PATH das minhas variáveis de conjunto? É porque tentar fazer isso é uma má prática?

UPDATE (e solução): Como encontrado por Christopher, há um relatório de bug sobre isso no launchpad. LD_LIBRARY_PATH é não definido após a análise do arquivo ~/.profile . Veja o relatório de erros . Parece que a única solução, por enquanto, é criar um script de wrapper.

    
por levesque 09.02.2011 / 17:34

1 resposta

4

Crie um arquivo para ele:

sudo vim /etc/ld.so.conf.d/my_application.conf

E o conteúdo desse arquivo:

/home/jim/usr/lib

Salvar. Recriar o cache:

sudo ldconfig -v
    
por user8290 09.02.2011 / 20:08