#DicasLPI – 102.3 – Controle de bibliotecas compartilhadas

Dicas para Certificação LPI
Share
banner

Dando continuidade aos nossos estudos iremos abordar o emprego das bibliotecas, bem como, suas diferenças e sua utilização em ambientes linux.

Funções semelhantes e compartilhadas por diferentes programas são armazenadas em arquivos chamados bibliotecas (que seriam o equivalente as .dll no Windows). Na compilação de um programa é necessário que as bibliotecas do sistema possam ser localizadas pelos componentes criando um vínculo entre suas próprias funções e as funções nas bibliotecas.

Estática ou Dinâmica

As bibliotecas dinâmicas são utilizadas por vários programas e necessárias para instalar programas distribuídos em código fonte. As bibliotecas estáticas não dependem de arquivos externos, porém são maiores do que as dinâmicas.

Identificando bibliotecas compartilhadas

Para verificas as bibliotecas necessárias a um programa é utilizado o comando ldd:

Como podemos observar na figura acima o programa vi, um editor simples de texto, requer algumas poucas bibliotecas. Na saída mostrada, todas as bibliotecas foram localizadas com sucesso, portanto o programa carregará. Entretanto, na ausência de alguma destas bibliotecas, não ocorreria o carregamento do mesmo.

Modo estático e compartilhado

O modo estático é mais rápido porém consome mais espaço. O modo compartilhado é ligeiramente mais lento, porém ocupa menos espaço, pois somente possui uma cópia da biblioteca facilitando a centralização e manutenção. No linux , bibliotecas estáticas tem nome como libname.a, enquanto bibliotecas compartilhadas são chamadas libname.so.x.y.z onde x.y.z são os números da versão.

Localização das bibliotecas

O programa responsável por carregar a biblioteca e ligá-lo ao programa que o mesmo depende é o ld.so, sendo invocado por um programa toda vez que este necessita de uma função de localizada numa biblioteca externa.

O ld.so é auxiliado pelo mapeamento encontrado no arquivo /etc/ld.so.cache, sendo, as localidades de bibliotecas no sistema por padrão são os diretórios  /lib e /usr/lib.

Diretórios contendo bibliotecas adicionais devem ser incluídos no arquivo /etc/ld.so.conf. Há distribuições que possuem o diretório /etc/ld.so.conf.d/, que pode possuir outros arquivos com localizações de bibliotecas. Executando o comando  ldconfig é fundamental para que as alterações em /etc/ld.so.conf  atualizem o /etc/ld.so.cache e também o ld.so.

Com isso encerramos mais um objetivo da LPIC-1 e devo ressaltar que somente a prática irá massificar os conhecimentos adquiridos.

PUBLICIDADE


Quer continuar por dentro das novidades do Blog Seja Livre? Siga o nosso perfil no TWITTER, curta a nossa página no FACEBOOK ou adicione o Blog Seja Livre nos seus círculos do GOOGLE+. Se você usa ORKUT, nós também estamos lá, inclusive no IDENTI.CA e Linkedin.

Sobre o Autor

Entusiasta Linux e Antigomobilista. Deividson é um dos co-fundadores do Seja Livre, e atualmente é Editor de conteúdo e Consultor de Mídias Sociais do Blog Seja Livre. É usuário Fedora e Embaixador do Fedora no Brasil.