Comando ldconfig no Linux (índice de bibliotecas) [Guia Básico]

O Comando ldconfig no Linux cria os links e refaz o índice das bibliotecas dinâmicas do arquivo /etc/ld.so.cache. Ele procura por bibliotecas nos diretórios /usr/lib e /lib, assim como nos diretórios listados em /etc/ld.so.conf, bem como o diretório informado na linha de comando.

As opções mais comuns são:

  • -p: Lista o conteúdo do cache /etc/ld.so.cache.
  • -v: Mostra o progresso da atualização do cache.
  • -f: arquivo informa um outro arquivo de configuração diferente do padrão /etc/ld.so.conf.

Exemplos:

# ldconfig –p
229 libs found in cache ‘/etc/ld.so.cache’ 
src_vipa.so (ELF) => /usr/lib/src_vipa.so 
libz.so.1 (libc6) => /lib/libz.so.1 
libz.so.1 (libc6) => /usr/lib/libz.so.1 
liby2util.so.3 (libc6) => /usr/lib/liby2util.so.3 
liby2pm.so.2 (libc6) => /usr/lib/liby2pm.so.2 
liby2.so.2 (libc6) => /usr/lib/liby2.so.2 
libyui.so.2 (libc6) => /usr/lib/libyui.so.2 
libycp.so.2 (libc6) => /usr/lib/libycp.so.2
# ldconfig –v
/usr/X11R6/lib: 
libSM.so.6 -> libSM.so.6.0 
libdps.so.1 -> libdps.so.1.0 
libXrender.so.1 -> libXrender.so.1.2 
(…)

LD_LIBRARY_PATH

Ainda é possível fornecer ao linker em tempo de execução ld.so uma lista de diretórios extras que podem conter bibliotecas compartilhadas através da variável ambiental LD_LIBRARY_PATH.

Uma lista de diretórios poderá ser configurada, separando-os por dois pontos “:”. Esta lista antecede a lista do arquivo ls.so.conf.

# set | grep LD_LIBRARY_PATH
LD_LIBRARY_PATH=/usr/lib

Por razões de segurança, a variável LD_LIBRARY_PATH é ignorada pelo ld.so quando este faz ligações de programas que possuem o bit SUID ou SGID habilitados.

Seu uso é comum para testar novas rotinas em bibliotecas em desenvolvimento ao invés de executar as rotinas já instaladas.

Toda vez que uma nova biblioteca for instalada, ou versão de biblioteca, é necessário atualizar o cache do linker ld.so com o comando ldconfig.

Raramente você precisará utilizar os comandos ldd e ldconfig se você instalar software no Linux utilizando um gerenciador de pacotes, pois os gerenciadores também instalam as dependencias de um software, de forma que as bibliotecas que o software necessita também são instaladas e o arquivo ld.so.cache é refeito no momento da instalação dos pacotes.

Mas se você baixar um software em código fonte, e for compilar este software, pode ter certeza que possivelmente irá esbarrar em um erro de falta de bibliotecas ou versão incorreta.

A lista de bibliotecas utilizadas por um programa pode ser obtida com o comando ldd.

Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.

Gostou? Compartilhe