Visualizar o Cache de Bibliotecas Compartilhadas com ldconfig -p
Na etapa anterior, você usou o comando find para pesquisar uma biblioteca em todo o sistema de arquivos, o que pode ser lento. Para acelerar o processo de localização de bibliotecas compartilhadas, os sistemas Linux mantêm um arquivo de cache, geralmente localizado em /etc/ld.so.cache. Este cache contém uma lista compilada de bibliotecas compartilhadas disponíveis nos diretórios padrão do sistema, permitindo que os programas carreguem suas dependências de forma muito mais rápida.
O comando ldconfig é a principal ferramenta para gerenciar este cache. Para visualizar o conteúdo do cache de bibliotecas atual, você pode usar a opção -p (print).
Execute o seguinte comando para exibir todas as bibliotecas conhecidas pelo cache:
ldconfig -p
A saída será bastante longa, pois um sistema típico possui muitas bibliotecas compartilhadas. O comando lista o número de bibliotecas encontradas e, em seguida, imprime cada uma delas. Aqui está uma pequena amostra de como é a saída:
1234 libs found in cache `/etc/ld.so.cache'
libzstd.so.1 (libc6,x86-64) => /lib/x86_64-linux-gnu/libzstd.so.1
libz.so.1 (libc6,x86-64) => /lib/x86_64-linux-gnu/libz.so.1
libz.so (libc6,x86-64) => /lib/x86_64-linux-gnu/libz.so
libyield.so.2 (libc6,x86-64) => /lib/x86_64-linux-gnu/libyield.so.2
...
libc.so.6 (libc6,x86-64) => /lib/x86_64-linux-gnu/libc.so.6
...
Cada linha mostra o nome da biblioteca, sua arquitetura e ABI (ex: libc6,x86-64), e o caminho completo para o arquivo da biblioteca.
Para evitar percorrer toda a lista, você pode direcionar a saída para o grep para procurar uma biblioteca específica. Vamos encontrar a entrada para libc.so.6, com a qual temos trabalhado:
ldconfig -p | grep libc.so.6
Isso filtrará a lista e mostrará apenas as entradas relacionadas à libc.so.6:
libc.so.6 (libc6,x86-64, OS ABI: Linux 3.2.0) => /lib/x86_64-linux-gnu/libc.so.6
Como você pode ver, esta é uma maneira muito mais rápida e direta de encontrar a localização de uma biblioteca em cache do que pesquisar em todo o sistema de arquivos. A saída mostra não apenas o nome e o caminho da biblioteca, mas também informações de arquitetura (libc6,x86-64) e compatibilidade de ABI do SO (OS ABI: Linux 3.2.0). No entanto, este cache não é atualizado automaticamente em tempo real. Se você instalar uma nova biblioteca, deverá atualizar o cache para que o sistema a encontre. Na próxima etapa, você aprenderá como fazer exatamente isso.