Como posso reordenar o LD_LIBRARY_PATH?

2

Como posso reordenar o LD_LIBRARY_PATH ?

Editar:

Estou interessado em LD_LIBRARY_PATH porque tenho este problema:

Não há atualizações, atualizações e remoções meu aplicativo do kubuntu

e um dos erros é devido a libreadline.so, mas como expliquei aqui: link it é importante para o postgresql.

Em um comentário, Phil me disse:

You can probably fix this by re-ordering your LD_LIBRARY_PATH so that /usr/local/lib/ is >at the end, rather than the beginning.

    
por DarkCoffee 29.12.2012 / 10:37

1 resposta

4

Para expandir a ideia no comentário de Ignacio Vazquez-Abrams: Seria útil descobrir como o valor atual desta variável de ambiente (com a ordem que você não gosta) está sendo definido, para mudar isso.

Se você não tem ideia de como está sendo definido, execute:

grep LD_LIBRARY_PATH= ~/.* /etc/*

Isso analisará todos os dotfiles em seu diretório pessoal e todos os arquivos de nível superior em /etc . Você receberá mensagens de permissão negada da consulta, mas tudo bem, elas não serão para lugares que provavelmente contêm um script que é executado e define LD_LIBRARY_PATH . (Então você não precisa executar o comando query como root .)

Se você somente receber permissão negada mensagens, nada foi encontrado. Se você também tiver linhas com um nome de arquivo, um ponto-e-vírgula e o conteúdo do arquivo, descobrirá que pode estar onde está sendo definido. Também pode não ser.

Você pode expandir sua consulta removendo o caractere = ; apenas esteja ciente de que é mais provável que você tenha falsos positivos, onde a variável está sendo usada, mas não está sendo definida.

Se isso falhar ...

Se você ainda não conseguir encontrá-lo, tente definir a variável sozinho. Veja:

Se ele for definido depois de configurado por qualquer mecanismo que esteja fazendo isso, você poderá substituir seu valor pelo que quiser (e isso pode ser uma versão reordenada do que é atualmente).

Se você tentar isso e não fizer nada ou você achar que ele contém o texto você deu, com outro texto antes ou depois dele (ou alguns antes e depois), então pelo menos esse lhe dará informações sobre quando está sendo definido, comparado a quando ele é definido pelo método que você escolher usar.

Se o texto na ordem errada for colocado apenas no final da variável como você o definiu, isso é irritante, mas é equivalente, desde que todos os mesmos diretórios façam parte do caminho previamente ordenado. (Tudo o que importa é onde um diretório primeiro aparece no caminho, porque depois que ele não é correspondido, ele não será correspondido em nenhum outro lugar.)

Se você puder fornecer mais informações sobre por que você precisa fazer isso, talvez seja mais fácil descobrir maneiras melhores de descobrir o que está sendo definido atualmente e isso pode tornar possível Sugestão a ser feita sobre a melhor forma de definir você mesmo.

Esta resposta também se aplica a outras variáveis de ambiente.

Mas, para algumas variáveis, como PATH , há alguns locais que quase sempre o definem, portanto, um problema semelhante pode ser mais fácil de resolver.

    
por Eliah Kagan 29.12.2012 / 20:43