segunda-feira, 16 de abril de 2012

102.3 Gerenciando Bibliotecas Compartilhadas

Tópico - 102 Instalação do Linux e gerenciamento de pacotes

102.3 Gerenciando Bibliotecas Compartilhadas


Olá pessoal hoje vamos entrar no Tópico 102.3 (Gerenciar bibliotecas compartilhadas) segundo o site da lpi.org será cobrado o seguinte conteúdo:

Tópico: 102.3 Manage shared libraries

Terms and Utilities

    ldd
    ldconfig
    /etc/ld.so.conf
    LD_LIBRARY_PATH




BIBLIOTECAS

Bibliotecas compartilhadas são arquivos que podem ser utilizados por diversos programas.
Quando um programador desenvolve seu programa, ele pode usar uma biblioteca compartilhada do sistema, não sendo necessária adiciona-la dentro do pacote do programa.


COMANDO ldd


O comando ldd serve para você verificar as bibliotecas compartilhadas que um determinado programa utiliza ou depende.

# ldd reload





Rodei o comando ldd reload dentro do /sbin, e como podemos ver são usadas varias bibliotecas, localizadas em diferentes locais, caso a biblioteca não esteja no sistema, vai aparecer uma mensagem "not found" onde você vai precisar incluir a biblioteca.

Os programas quando precisam de uma biblioteca, vão buscar no ld.so se existe a biblioteca necessária no sistema.

O ld.so disponibiliza a biblioteca necessária ao programa verificando dentro do arquivo /etc/ld.so.cache  onde o mesmo contém o caminho onde as bibliotecas estão no sistema, na maioria das distribuições estão em /lib e /usr/lib que são os principais diretórios contendo bibliotecas compartilhadas.   

O Fluxograma a seguir mostra mais ou menos como funciona esta sequência:



Também existe o arquivo /etc/ld.so.conf onde também contém pastas com bibliotecas compartilhadas.

 
COMANDO ldconfig


O comando ldconfig é usado sempre que você incluir/adicionar uma biblioteca no seu sistema, você vai usar o comando ldconfig para atualizar os indices dentro de /etc/ld.so.cache que vai dizer ao ld.so que uma determinada biblioteca foi adicionada.


De forma simplificada seria mais ou menos assim:




Você vai colocar a biblioteca dentro de /lib ou /usr/lib rodar o comando ldconfig onde o mesmo atualiza os indíces dentro de /etc/ld.so.cache adicionando a nova biblioteca ao sistema.




VARIÁVEL LD_LIBRARY_PATH


A variável LD_LIBRARY_PATH serve para exportar uma biblioteca ao sistema, a biblioteca exportada não vai ser adicionada ao arquivo /etc/ld.so.cache sendo utilizada somente enquanto sua máquina estiver ligada.

Vamos supor que você baixou uma biblioteca e a mesma está em /home/usuario/Downloads/lib.so.teste

Você vai exporta-la da seguinte maneira:

# export LD_LIBRARY_PATH=/home/usuario/Downloads/lib.so.teste

Para termos certeza que funcionou o comando export, vamos rodar o comando echo $LD_LIBRARY_PATH

# echo $LD_LIBRARY_PATH

Segue um exemplo:




Caso tenha dado certo você vai ver o caminho da biblioteca exportada.

Essa variavel é muito utilizada para usuários que não tenham permissão de alterar o arquivo ld.so.conf rodando o comando ldconfig, e nem permissão de incluir bibliotecas dentro de /lib e /usr/lib .

Bem é isso, bons estudos a todos!! 




 


3 comentários:

  1. Este comentário foi removido pelo autor.

    ResponderExcluir
  2. Olá Cléio, muito bom o post!

    apenas fiquei com uma duvida, estou trabalhando em projeto pra migrar um servidor, e estou com problemas em cima de algumas bibliotecas.

    A minha maior dificuldade é como eu faço pra adicionar uma biblioteca sem ser via yum ou apt-get...

    Ex. eu fiz o download da bibliotecas lib.so, e agora como eu faço pra adicionar essa biblioteca no meu sistema ??

    Obrigado!

    ResponderExcluir
  3. Olá Douglas!

    Você vai colocar a biblioteca dentro de /lib ou /usr/lib rodar o comando ldconfig onde o mesmo atualiza os indíces dentro de /etc/ld.so.cache adicionando a nova biblioteca ao sistema, creio que seja isso que precise!

    ResponderExcluir