Caminhos de pesquisa de arquivos do objeto compartilhado (so)

1

Qual é a sequência de caminhos pesquisados para carregar um arquivo de objeto compartilhado?

Estou tentando executar um executável que tenta carregar um arquivo de objeto compartilhado. O arquivo de objeto compartilhado pode ser encontrado em /usr/lib/x86_64-linux-gnu/ .

Eu tenho dois usuários, vamos chamá-los de user1 e user2 . user1 pode executar o executável, mas user2 encontra o erro: não é possível abrir o arquivo de objeto compartilhado: libicuuc.so

Ambos os usuários têm o mesmo LD_LIBRARY_PATH . O que está se desviando?

    
por Mukul Gupta 18.04.2016 / 13:16

1 resposta

1

man ldconfig pode ajudá-lo

/etc/ld.so.cache    File  containing an ordered list of libraries found
                    in the directories specified in /etc/ld.so.conf, as
                    well as those found in /lib and /usr/lib.

mas o seu distrib pode conter outras informações além da minha, então você deve ler o seu.

Outra maneira de decidir quais bibliotecas estão vinculadas ao seu executável é usar o programa ldd Um exemplo:

ldd /bin/echo
        linux-vdso.so.1 =>  (0x00007ffc2277a000)
        libc.so.6 => /lib64/libc.so.6 (0x0000003edc200000)
        /lib64/ld-linux-x86-64.so.2 (0x0000003edbe00000)
    
por 18.04.2016 / 14:59