Relação entre ldconfig e ld.so.cache

4

Depois que eu reiniciar meu computador, ld.so.cache ainda tem as informações nele, então minhas perguntas são as seguintes:

  1. As informações são sempre mantidas lá? Não está sendo removido após o reinício ou algo assim? Como RAM ou cache do navegador sendo excluído?

  2. Depois de ter removido um aplicativo que instalou algumas bibliotecas compartilhadas, ele sabe também remover as informações do ld.so.cache ? Se eu usar ldconfig , removerá as informações? Como isso realmente funciona?

  3. Se eu estiver instalando um programa, como meu computador saberá usar as novas bibliotecas que foram adicionadas? Depois que apt-get install é ldconfig run?

por Nirel 22.01.2016 / 00:59

2 respostas

4

Os programas do Linux estão usando bibliotecas que são chamadas de objetos compartilhados. Objetos compartilhados possuem a extensão .so. Para ver o S.O. uso do comando ls run ldd /bin/ls

  1. Por padrão, as bibliotecas são armazenadas em / lib / usr / lib e / usr / local / lib (/ lib32, / lib64 para 32/64 bits). A informação onde libs adicionais podem ser encontradas é armazenada em /etc/ld.so.conf.d/ . Existem arquivos .conf únicos que contêm pathes para bibliotecas específicas, ie. %código%. Como a pesquisa em /etc/ld.so.conf.d/ é muito lenta /opt/foo/lib gera o arquivo /etc/ld.so.cache, que é uma versão binária desta que melhora a velocidade de pesquisa. Para responder a primeira pergunta. Não mantenha o arquivo.

  2. Sim, o apt-get ou o dpkg (?) está acionando o ldconfig. Como funciona - veja 1.

  3. Sim, veja 1.

Espero, acertei. Sinta-se à vontade para me corrigir.

    
por 19.10.2016 / 19:51
1

apt-get e dpkg invocam ldconfig para reconstruir o cache.

Eu imagino que isso é feito no final de cada operação em massa, mas não sei ao certo.

Eu não acho que haja uma maneira de remover dados específicos do cache, apenas é recriado, por exemplo:

rm /etc/ld.so.cache
ldconfig

Você pode usar ldconfig -p para verificar o conteúdo do cache.

No meu sistema ldconfig é invocado a cada reinicialização, mas se /etc/ estiver sendo usado para o cache, ele não será criado do zero a cada vez; você teria que reconstruir você mesmo se você quiser isso.

Se você remover algumas bibliotecas manualmente, precisará reconstruí-las.

    
por 08.05.2017 / 21:46