Como alterar o caminho das bibliotecas compartilhadas mostradas pelo ldd?

1

Estou tentando fazer com que a extensão postgis funcione em meu sistema e ele sempre exclui "$ libdir / postgis2.2" nenhum erro de arquivo ou diretório. Para minha curiosidade eu executei "ldd postgis-2.2.so" e ele cospe o seguinte resultado:

    linux-vdso.so.1 =>  (0x00007ffff3bc8000)
    /usr/lib64/libjemalloc.so.1 (0x00002b3fe5ff4000)
    libgeos_c.so.1 => not found
    libproj.so.9 => not found
    libjson-c.so.2 => not found
    libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00002b3fe6237000)
    libm.so.6 => /lib64/libm.so.6 (0x00002b3fe659e000)
    libc.so.6 => /lib64/libc.so.6 (0x00002b3fe689c000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00002b3fe6c41000)
    /lib64/ld-linux-x86-64.so.2 (0x00002b3fe5b2e000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00002b3fe6e5d000)
    libz.so.1 => /lib64/libz.so.1 (0x00002b3fe7061000)
    liblzma.so.5 => /usr/lib64/liblzma.so.5 (0x00002b3fe7277000)

E para um monte de dependências eu vejo o caminho para o seu então não está presente. Isso eu acho que está acontecendo porque eu não estou construindo postgis, mas apenas copiando o necessário so e libs para fazê-lo funcionar manualmente. Mas eu sei o caminho para esses arquivos que são requeridos por postgis. O que devo fazer para mudar o "não encontrado" nas dependências do caminho requerido pelo postgis?

    
por AnkitSablok 18.08.2016 / 06:59

1 resposta

2

ld.so , o vinculador dinâmico, usará a variável de ambiente PATH -like LD_LIBRARY_PATH quando procurar por bibliotecas compartilhadas para vincular em tempo de execução.

Você pode definir LD_LIBRARY_PATH para uma lista de diretórios : -delimited onde o vinculador deve procurar por bibliotecas, por exemplo:

$ env LD_LIBRARY_PATH="$HOME/local/lib:/opt/other/lib" ./myprog

Veja o manual ld.so no seu sistema para mais informações.

    
por 18.08.2016 / 07:51