Bibliotecas
Pequenas introdução
Hoje em dia é muito simples instalar um programa já compilado, com a ajuda de gerenciadores de pacotes com rpm, dpkg, aptitude e outros. Mas com certeza um dia iremos encontrar muitos programas disponíveis somente em código-fonte, e às vezes nem tão bem documentado. Entretanto, compilar um programa não é algo de outro mundo.
Temos as bibliotecas estáticas e dinâmicas.
Em sistemas Linux existem dois tipos fundamentais de programas executáveis.
Estático
Contém todas as funções que ele precisa para ser executado, em outras palavras, é completo.
Dinâmico
As dinâmicas são usadas por vários programas e necessárias para instalar programas distribuídos em código fonte.
# ldd [caminho do executável]
# ldd $(which [executável])
Modo Estático e Compartilhado
Modo estático é ligeiramente mais rápido, pois não precisa buscar bibliotecas em diretórios, mas consome mais espaço (dado que cada programa teria uma cópia da biblioteca dentro de si).
Modo compartilhado é ligeiramente mais lento, pois precisa sempre abrir o arquivo da biblioteca, mas ocupa menos espaço (dado que só se tem uma cópia da biblioteca).
O padrão é usar bibliotecas compartilhadas, e geralmente é a decisão mais sábia, mas precisa que todas as bibliotecas necessárias estejam presente no sistema para executar.
Bibliotecas estáticas tem o nome de libname.a
Bibliotecas compartilhadas são chamadas lib.so.x.y.z
No linux as bibliotecas podem ser encontradas em /lib e /usr/lib/
As bibliotecas mais comuns, utilizadas por todas as aplicações e utilitários do sistema, são:
libc: é um grande pacote de bibliotecas que provê funcionalidades básicas de entrada e saída, de acesso a serviços do sistema, à rede, etc.
ld-linux: provê as funções necessárias para a carga de bibliotecas dinâmicas, durante a inicialização do programa.
Para instalar uma biblioteca necessária ausente, é preciso copiá-la em um dois diretórios listados no arquivo /etc/ld.so.conf e em seguida executar o comando ldconfig.
para verificar todas as bibliotecas presente no sistema usa-se o comando ldconfig -p
Se por algum motivo apagar o arquivo /etc/ld.so.cache, é só executar o comando ldconfig.