Aula
Gerenciamento de Bibliotecas compartilhadas no Linux (ldd, ldconfig, ld.so) Bibliotecas Comando ldd Exibe as bibliotecas compartilhadas requeridas por cada um dos programas listados na sua linha de comando, trazendo o nome da biblioteca e o local onde se espera encontrá-la. ldd (programas) enter Imprime as dependências de bibliotecas compartilhadas. ldd --version enter Mostra a versão do ldd. ldd -v (programa) enter - Modo verbose para o programa especificado. ldd -v /bin/ls enter Vinculando as bibliotecas compartilhadas - ld.so: Os programas executáveis dinamicamente vinculados são examinados, no momento da execução, pelo vinculador dinâmico de objetos compartilhados ld.so Ele procura por dependências no executável que está sendo carregado e tenta satisfazer vínculos a bibliotecas compartilhadas de sistema que não estejam resolvidos. Se ele não encontrar uma biblioteca, o programa não poderá rodar. ld.so pode procurar pelos diretórios que contém bibliotecas na variável LD_LIBRARY_PATH ou as bibliotecas são procuradas em um índice de nomes e localizações de bibliotecas (binários) chamado /etc/ld.so.cache. Adicionar novas entradas ao cache: adicione o diretório que contém as bibliotecas ao arquivo /etc/ld.so.conf e atualize o cache com o comando ldconfig. ld config - Configura ligações em tempo de execução do ligador dinâmico (ld.so). Cria os links e cache necessários para as bibliotecas compartilhadas mais recentes encontradas nos diretórios especificados na CLI, no arquivo /etc/ld.so.conf e nos diretórios /lib e /usr/lib. ld config -p enter Examina o conteúdo do cache de bibliotecas ld.so.cache idconfig enter Reconstrói o cache incluindo as atualizações realizadas em /etc/ld.so.conf. Outro local em que ele pode procurar bibliotecas é na variável de ambiente LD_LIBRARY_PATH Contém uma lista de diretórios serparados por: onde o sistema irá procurar por determinada biblioteca dinâmica (s*.so). Quando um programa precisa de uma biblioteca dinâmica, o sitema a procura nos diretórios listados em LD_LIBRARY_PATH, depois no arquivo de cache /etc/ld.so.cache e então nos diretórios /lib e/usr/lib. Para visualizar o coneteúdo da variável de ambiente LD_LIBRARY_PATH, use o seguinte comando: echo $LD_LIBRARY_PATH RESUMO: Bibliotecas compartilhadas 1 O usuário executa um programa qualquer, 2 O programa ld.so é invocado para descobrir as dependências do programa do usuário e vincular as bibliotecas necessárias. 3 Para isso ld.so consulta diversos diretórios que contém bibliotecas, ex: /lib e a variável de ambiente LD_LIBRARY_PATH 4 Ao encontrar as dependências requeridas, efetura a vinculação e assim as funções da biblioteca ficam disponíveis para o programa chamador, e ele é então executado. 5 o ld.so também pode consultar um cache de nomes de bibliotecs e caminhos chamado /etc/ld.so.cache que não é legível por humanos. 6 É possível acrescentar mais caminhos de diretórios ao ld.so.cache editando-se o arquivo de configuração /etc/ld.so.conf. 7 Caso o /etc/ld.so.conf seja editado, rode o programa idconfig logo após para atualizar o cache (/etc/ld/so.cache) com as novas configurações.
Nenhum comentário:
Postar um comentário