Sie sind auf Seite 1von 10

Gerenciar bibliotecas

www.4linux.com.br

-2

Sumrio
Captulo 1
Gerenciar bibliotecas ................................................................................................................ 3
1.1. Mos a obra..................................................................................................................... 4
Captulo 2
Gerenciando .............................................................................................................................. 5
2.1. Objetivos......................................................................................................................... 5
2.1. Troubleshooting.............................................................................................................. 5

ndice de tabelas
ndice de Figuras

www.4linux.com.br

Captulo 1 Gerenciar bibliotecas - 3

Captulo 1
Gerenciar bibliotecas

Como identificar bibliotecas estticas e dinmicas.


Balano entre tipos de bibliotecas;
Funcionamento (comandos, arquivos de configurao e diretrios).

www.4linux.com.br

Captulo 1 Gerenciar bibliotecas - 4

1.1. Mos a obra


A bibliotecas atribuem diversas funcionalidades a um binrio quando
executado, essas funes permitem que os binrios possam exibir informaes na
tela, escrever dados em um disco e/ou manipular recurso em um rede.

Mas como identificar que tipo de biblioteca um binrio esta utilizando?

Um comando muito til o ldd, onde exibe quais bibliotecas compartilhadas


so necessrias para o binrio em tempo de execuo.

# ldd $(which cp)

Em nosso exemplo foram listadas todas as bibliotecas que o comando cp


utiliza. Use o mesmo comando agora para o binrio zcat.

# ldd $(which zcat)

J o binrio zcat no usa bibliotecas compartilhadas.

www.4linux.com.br

Captulo 1 Gerenciar bibliotecas - 5


A diferena que um binrio com bibliotecas estticas, as contem em seu
interior, j o binrio com bibliotecas compartilhadas possui apenas uma referencia.

Para visualizar todas as bibliotecas de todos os binrios de um diretrio, use o


comando ls em conjunto com xargs, which e ldd. Assim possvel descobrir de uma
s vez, quais binrios utilizam bibliotecas compartilhadas e estticas.

# ls /bin | xargs which | xargs ldd

www.4linux.com.br

Captulo 1 Gerenciar bibliotecas - 6


Balano entre tipos de bibliotecas
Fazendo um balano entre os tipos de binrios, temos mais performance
quando usadas bibliotecas estticas e mais gasto de memoria quando usadas as
compartilhadas. Veja abaixo um comparativo com pontos positivos (+) contra os
negativos (-).

Bibliotecas estticas
Binrio roda de forma independente ( + )
Ganho de performance ( + )
Gasto desnecessrio de memria ( - )
Tamanho maior no final do arquivo ( - )

Bibliotecas dinmicas (compartilhadas)


Gasto menor de memria ( + )
Tamanho menor final do arquivo ( + )
Linker faz referncia em tempo de execuo ( - )
Perda de performance ( - )

Funcionamento
Para entender todo o funcionamento das bibliotecas, vamos conhecer os
comandos, arquivos, diretrios e suas ligaes.

www.4linux.com.br

Captulo 1 Gerenciar bibliotecas - 7


ldd
Retorna uma lista das bibliotecas dinmicas que o binrio precisa em tempo
de execuo. Muito til para resolver problemas de falta de alguma biblioteca.

ld.so
Completa a ligao entre o binrio e as bibliotecas dinmicas em tempo de
execuo.

/etc/ld.so.cache
Arquivo de cache usado por ld.so para localizar as bibliotecas, deixando a
ligao mais rapida.

/lib e /usr/lib
Localizao das bibliotecas no sistema.

/etc/ld.so.conf
Arquivo com a localizao de bibliotecas adicionais. neste arquivo que
temos informaes de onde podemos personalizar caminhos adicionais para as
bibliotecas

ldconfig
Comando usado para que as alteraes no arquivo /etc/ld.so.conf atualizem
o /etc/ld.so.cache. Exemplo:

www.4linux.com.br

Captulo 2 Gerenciando - 8

Captulo 2
Gerenciando

2.1. Objetivos
Trobleshooting: Resolver problemas de bibliotecas.

2.1. Troubleshooting
Como posso resolver problemas de bibliotecas?

O comando ldconfig pode atualizar o cache resolvendo alguns problemas como


falta de bibliotecas em novos programas instalados apenas descompactando um
tar.gz. Como exemplo vamos utilizar o Kompozer, que um editor de pginas Web para
Linux. Vamos a prtica:

Primeiro baixe o pacote do Kompozer no endereo abaixo:


http://sourceforge.net/projects/kompozer/files/current/0.8b3/linuxi686/kompozer-0.8b3.ko.gcc4.2-i686.tar.gz/download

www.4linux.com.br

Captulo 2 Gerenciando - 9
Descompacte para o diretrio /usr/local atravs do comando tar

# tar xzvf kompozer-0.8b3.pt-BR.gcc4.2-i686.tar.gz -C /usr/local

Com um usurio comum execute o programa digitando seu caminho completo

$ /usr/local/kompozer/kompozer-bin

Veja em nosso exemplo que o ld.so no consegue achar as bibliotecas. Para


resolver este problema, crie um arquivo de nome kompozer.conf no diretrio
/etc/ld.so.conf.d

# vim /etc/ld.so.conf.d/kompozer.conf
/usr/local/kompozer

No contedo do arquivo foi definido o caminho das bibliotecas necessrias para


que o binrio kompozer-bin funcione.
Agora para que o ld.so faa a ligao em tempo de execuo das bibliotecas ao
binrio kompozer-bin, use o comando ldconfig.

# ldconfig

O que aconteceu?

www.4linux.com.br

Captulo 2 Gerenciando - 10
O ldconfig leu a configurao do arquivo ld.so.conf que aponta para o
diretrio /etc/ld.so.conf.d, e neste diretrio foi criado o arquivo kompozer.conf com a
localizao das bibliotecas do binrio kompozer-bin.
Essa localizao foi adicionada ao arquivo de cache ld.so.cache, que
consultado pelo ld.so para fazer as ligaes das bibliotecas.

Para testar o funcionamento, execute no modo grfico atravs de um usurio


comum, o nome do binrio com se caminho completo. Tambm funciona usando as
teclas ALT + F2 e digitando /usr/local/kompozer/kompozer-bin

$ /usr/local/kompozer/kompozer-bin

www.4linux.com.br

Das könnte Ihnen auch gefallen