Configure LD_LIBRARY_PATH para aplicativos iniciados a partir da área de trabalho

7

Eu tenho o Qt Creator instalado no Ubuntu 10.04 LTS. Quando eu inicio o Qt Creator a partir do desktop eu posso construir o aplicativo que estou trabalhando, mas não posso executá-lo ou depurá-lo. Depois de lutar um pouco, descobri que LD_LIBRARY_PATH não está configurado para aplicativos que são executados a partir da área de trabalho. Se eu iniciar o Qt Creator do bash (onde LD_LIBRARY_PATH é definido em .bashrc), tudo será executado e depurado perfeitamente.

Como eu configuro o LD_LIBRARY_PATH para que ele seja definido para todos os aplicativos em execução?

    
por dwj 28.10.2010 / 03:03

4 respostas

6

Isso parece um bug no próprio aplicativo. Ele deve ter um script de wrapper que defina corretamente as variáveis LD_LIBRARY_PATH necessárias. Tenha cuidado ao escrever esse script, pois você não deseja ter nenhuma parte vazia da string LD_LIBRARY_PATH entre os dois pontos que ele usa como separadores de caminho. Por exemplo, isso poderia resultar em um caminho incorreto, se a variável estivesse vazia inicialmente (resultando em uma cadeia vazia antes dos dois pontos):

LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/some/path/for/app"

Então, ao adicionar um caminho, você vai querer testar primeiro a string vazia. Por exemplo, usando o código shell:

LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}/some/path/for/app
    
por Kees Cook 28.10.2010 / 05:23
1

Crie um novo arquivo /etc/ld.so.conf contendo:

# Begin /etc/ld.so.conf
/lib
/usr/lib
/usr/X11R6/lib
# whatever else #

Atualize o cache do carregador dinâmico executando:

ldconfig
    
por Extender 28.10.2010 / 04:37
0

Além de .bashrc , defina também a variável de ambiente em .profile . Este arquivo será processado e carregado pela sua sessão, portanto, ele deve afetar tudo que está sendo executado como usuário. Além disso: Este arquivo diz que ele não é lido pelo Bash se .bashrc existir, mas parece se aplicar ainda (talvez porque o Bash herda a sessão X de onde foi iniciado). Não faz mal ter a variável em ambos os arquivos, no entanto.

    
por Jacob Peddicord 28.10.2010 / 04:24
0

configure-o em /etc/bash.bashrc próximo ao topo para fazer uma grande mudança no sistema durante a inicialização.

    
por Roop 23.08.2013 / 01:42