O que são Bibliotecas ou Libraries?

Biblioteca é o significado da palavra inglêsa library. Então library e biblioteca são a mesma coisa.

No Windows as bibliotecas são as conhecidas dlls, arquivos terminados em “.dll“; Em Linux Bibliotecas são arquivos terminados em “.so” ou “.a” e tem como função, assim como no windows, auxiliar programadores, fazendo com que partes nativas do Sistema Operacional(Windows ou Linux) sejam integrados aos seus programas.

Por exemplo, suponha que você está criando um software(programa) e precise criar um modo onde as pessoas que usurem tal programa possam enviar e abrir documentos. Usar biblioteca facilitará sua vida, visto que já existe, desde  época de Adão e Eva, bibliotecas nativas para Linux/Windows que oferecem janelas:

 

Tipos de Bibliotecas

.a = Bibliotecas terminadas em .a são estáticas, isso é, durante a instalação do programa o conteúdo dessa biblioteca será incorporada, fará parte permanente do código do programa.

.so = Bibliotecas terminadas em .so são dinâmicas, ou seja, ao instalar um programa essas bibliotecas não farão parte do programa, mas o programa, quando necessitar, chamará a biblioteca.

Problemas ao Instalar Programas

 

Quem nunca passou por isso? A instalação de um certo programa não tem êxito por que no seu computador falta uma(s) biblioteca(s)? Em linux falamos que a  dependência Y para o pacote  X não existe. Só nos resta anotar o nome da dependência e correr atrás do prejuízo.

Local das Libraries

Acima, digitei library por já está cansado de escrever biblioteca(opa! digitei uma vez mais 🙂 ).

No momento não interessa muito falar em qual diretório do windows ficam as dlls 😀 Todavia, no Linux ficam em diretórios Libs. Abaixo cito exemplos:

[elder@centos ~]$ ls -d  /lib*
/lib  /lib64
[elder@centos ~]$ ls -d  /usr/lib*
/usr/lib  /usr/lib64

 

Nomeclatura

[elder@centos ~]$ sudo ls -l /lib64/libcups.so*
-rwxr-xr-x. 1 root root 434408 Nov  5  2016 /lib64/libcups.so.2

Pegando como exemplo a library acima, libcups.so.2, podemos dizer:

libcups = Nome do pacote

so = Se trada de uma library dinâmica

2 = Versão da biblioteca.

Seu Programa Depende de quais Bibliotecas?

Para saber quais bibliotecas um certo programa depende basta usar o comando ldd

O programa ls depende de:

[elder@centos ~]$ ldd  /usr/bin/ls
        linux-vdso.so.1 =>  (0x00007fff8abfe000)
        libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fca5158e000)
        libcap.so.2 => /lib64/libcap.so.2 (0x00007fca51389000)
        libacl.so.1 => /lib64/libacl.so.1 (0x00007fca5117f000)
        libc.so.6 => /lib64/libc.so.6 (0x00007fca50dbd000)
        libpcre.so.1 => /lib64/libpcre.so.1 (0x00007fca50b5c000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007fca50957000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fca517c4000)
        libattr.so.1 => /lib64/libattr.so.1 (0x00007fca50752000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fca50536000)

Se desejar listar todas bibliotecas use o comando abaixo:

[elder@centos ~]$ ldconfig -p

Pode usar o grep para filtrar:

[elder@centos ~]$ ldconfig -p | grep cp
        libprocps.so.4 (libc6,x86-64) => /lib64/libprocps.so.4
        libpcrecpp.so.0 (libc6,x86-64) => /lib64/libpcrecpp.so.0
        libpcrecpp.so (libc6,x86-64) => /lib64/libpcrecpp.so
        libdhcpctl.so.0 (libc6,x86-64) => /lib64/libdhcpctl.so.0
        libcpupower.so.0 (libc6,x86-64) => /lib64/libcpupower.so.0
        libXdmcp.so.6 (libc6,x86-64) => /lib64/libXdmcp.so.6

Bom, é isso aí. Espero que tenha ajudado!!! Até a próxima!

Siga-nos em nossas redes:

Link Facebook: https://www.facebook.com/gnulinuxbr

Artigos Relacionados:

Leitor voraz e um dos administradores do GNU/Linux Brasil no Whatsapp, facebook, youtube e nesse dito site: www.gnulinuxbrasil.com.br

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *