Definindo LD_LIBRARY_PATH

0

Estou tentando executar um programa em um servidor com o Linux Ubuntu 3.16.0-31-generic e isso me dá o seguinte erro:

error while loading shared libraries: libmpich.so.3: cannot open shared object file: No such file or directory

Eu pesquisei pela Internet para encontrar uma solução e vejo pessoas falando sobre como configurar o LD_LIBRARY_PATH de alguma forma. A maioria das maneiras de fazer isso exigia o sudo, mas eu não tenho permissão de administrador, então não posso usá-lo.

Isso realmente resolveria o problema? E se sim, como eu poderia configurá-lo?

    
por Sofia 31.05.2015 / 15:59

1 resposta

3

Você não precisa de permissão para definir este ENV (consulte a seção 'variáveis de ambiente') variável.

E como o objeto compartilhado está ausente quando está sendo executado vs. instalando um aplicativo, você não precisa definir isso. Você está perdendo um pacote que inclui libmpich.so . Procure e instale qualquer coisa do seu repositório de pacotes "deb" que inclua o (s) objeto (s) compartilhado (s) libmpich.so . Tente o seguinte para encontrá-los.

$ apt-cache search mpich

Agora, voltemos à pergunta:

Existem algumas maneiras de conseguir isso. Defina-o para a sessão inteira, defina-o permanentemente ou informe o compilador apenas durante o tempo de compilação.

O mais rápido e menos intrusivo (em relação à mudança de variáveis de ambiente do sistema operacional) é configurá-lo para o procedimento de compilação:

$ LD_LIBRARY_PATH=/lib:/lib64:/usr/lib:/usr/lib64 run-binary-command

Ou você pode configurá-lo para a sessão atual da seguinte forma:

$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib:/lib64:/usr/lib:/usr/lib64

E para configurá-lo para sempre:

$ echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib:/lib64:/usr/lib:/usr/lib64' >> ~/.profile
    
por 31.05.2015 / 16:13

Tags