Sistema portátil de lotes

1

Estou trabalhando em um servidor (não sou o administrador) no qual preciso executar trabalhos no formato .pbs para desconectar meu computador enquanto um trabalho está em execução.

O problema é que não consigo rodar no formato .pbs os mesmos comandos que posso executar no formato .sh, diz:

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

Esta biblioteca está localizada em /usr/lib264 .

Eu tentei exportar esta biblioteca, mas posso ter feito isso errado.

Como fazer exatamente isso?

    
por MHG 23.12.2015 / 07:54

1 resposta

3

O problema é que ld (o vinculador GNU) não pode encontrar a biblioteca, porque a biblioteca não está em um caminho ld trusted nem o caminho da biblioteca foi disponibilizado para ld por outro significa.

Portanto, você deve disponibilizar o caminho da biblioteca para ld .

Como você não tem privilégios administrativos, será necessário substituir as configurações ld locais, o que pode ser feito adicionando o caminho à variável de ambiente LD_LIBRARY_PATH :

printf "export LD_LIBRARY_PATH=\"$LD_LIBRARY_PATH:/usr/lib264\n\"" >>~/.bashrc

E pesquisando ~/.bashrc para aplicar as alterações ao shell em execução:

. ~/.bashrc

A maneira "certa" de tornar as bibliotecas contidas em /usr/lib264 disponível em todo o sistema seria adicionar um arquivo .conf contendo o caminho da biblioteca em /etc/ld.so.conf.d/ e atualizar o ld cache.

Isso requer privilégios de administração, portanto, não se aplica ao seu caso; no entanto, estou deixando isso para outras pessoas tropeçarem nesta resposta.

Primeiro, deve-se adicionar um arquivo .conf contendo o caminho da biblioteca em /etc/ld.so.conf.d/ :

printf "/usr/lib264\n" | sudo tee -a /etc/ld.so.conf.d/other_libraries.conf

Em seguida, deve-se executar ldconfig para atualizar o ld cache:

ldconfig

Depois disso, o caminho da biblioteca deve estar disponível para ld system-wide.

    
por kos 23.12.2015 / 08:09