Você estaria interessado em remover caminhos de bibliotecas se uma determinada biblioteca compartilhada tivesse caminhos incorporados através do recurso rpath . Esses são adicionados no momento em que a biblioteca é criada pelo vinculador.
Você pode remover (ou alterar) esses caminhos usando chrpath
, por exemplo,
chrpath -d mylibraryfile.so
A remoção de nomes de caminho da variável LD_LIBRARY_PATH
também é uma possível área de interesse; você pode fazer isso por meio da substituição de string e reexportar a variável. No entanto, a questão não parece se preocupar com isso. Não há variável que aja para cancelar LD_LIBRARY_PATH
.
Para ver dependências de bibliotecas, a menção de /etc/ld.so.conf.d/
faz parecer que a plataforma é apenas Linux. Você pode usar ldd
para listar dependências. Além do OSX, todos os BSDs também suportam ldd
. Aqui está um dos scripts que eu uso para esse propósito:
#!/bin/sh
# $Id: ldd-path,v 1.1 2007/07/09 19:30:28 tom Exp $
# Edit the output of ldd for the given parameters, yielding only the
# absolute pathnames.
ldd $* | sed \
-e 's/([^)]*)//g' \
-e 's/^.*=>//' \
-e 's/[ ][ ]*//g' \
-e '/^$/d'
Mas (endereçando um comentário), não existe nenhum mecanismo portátil para dizer ao carregador para ignorar um caminho existente. A documentação do GNU ld fornece um resumo do que é solicitado e a ordem na descrição do -rpath
opção. Esses itens concluem a lista:
- The default directories, normally
/lib
and/usr/lib
.- For a native linker on an ELF system, if the file
/etc/ld.so.conf
exists, the list of directories found in that file.
Leitura adicional