Contornando problemas de falta de bibliotecas - Links simbólicos

Publicado por Alberto Federman Neto. em 30/07/2012

[ Hits: 8.960 ]

Blog: https://ciencialivre.blog/

 


Contornando problemas de falta de bibliotecas - Links simbólicos



Dica simples, mas quebra um galho.

Algumas vezes, vamos executar um programa ou pacote, e falta uma biblioteca, então, obviamente não funciona!

Há uma maneira simples de contornar o problema se a biblioteca existir em outra pasta do disco rígido. Embora os puristas não gostem (porque de fato não resolve o problema, a configuração, mas apenas o contorna), alguns problemas de falta de bibliotecas podem ser contornados com o uso de links simbólicos.

Por exemplo, você tentou executar o programa Brasero, via comando, e não funcionou:

brasero

Mensagem de erro:
brasero: error while loading shared libraries: libpng14.so cannot open shared object file: No such file or directory


O primeiro passo, é ver o que o programa usa, as bibliotecas, no nosso exemplo (Brasero, executável está em "/usr/bin") execute o comando abaixo, aparecerá as bibliotecas usadas pelo programa e entre elas a que falta:

ldd /usr/bin/brasero | grep found

Aparecerão, entre outras linhas esta:
libpng14.so => not found


Agora, é achar se nosso disco rígido tem a biblioteca "libpng14.so". Geralmente, as bibliotecas, 32 ou 64 bits, ficam em um subdiretório do "/usr". Supondo que seu GNU/Linux seja 64 bits, execute este comando:

ls -l /usr/lib64 | grep libpng
-rwxr-xr-x  1 root root   158632 Jun 12 13:28 libpng12.so
-rw-r--r--  1 root root   280454 Jun 12 13:27 libpng14.so


Veja que achou. Agora, em geral basta contornar o problema criando um link simbólico. Veja detalhes em:
Crie-o para a biblioteca, fazendo uma "chamada", um atalho dela, para outra pasta, para o caminho da pasta geral da maioria das bibliotecas do sistema (/usr/lib).

Para nosso exemplo, execute estes comandos:

cd /
$ cd usr/lib
$ sudo ln -s /usr/lib/lib64/libpng14.so libpng14.so


Para outros executáveis e bibliotecas, adapte para o seu caso e diretórios.

Em um outro exemplo, com um problema de biblioteca faltante no aMule, veja esta homepage e os links citados nela:

Outras dicas deste autor

Sabayon 4.0-r1 (versão antiga) - Download e criação de ISO a partir do LiveCD/DVD

Recuperação de OpenRC e SysVinit em Sabayon Linux

Aproveitando todo o espaço de disco ao gravar ISOs

Fazendo "chroot" facilmente

Multifuncional HP Deskjet 2050 - scanner não funciona no Sabayon Linux [Resolvido]

Leitura recomendada

Configuração de impressão do SIAFI no Ubuntu

Alterar editor de textos padrão no Debian Squeeze

Configurando Terminal Para Exibir Asteriscos ao Digitar Senha

Iniciador rápido do OpenOffice.org 2.0

Trabalhando com arquivos DEB

  

Comentários
[1] Comentário enviado por albfneto em 30/07/2012 - 11:15h

COMPLEMENTO DA DICA.

Ao redigir a Dica, esquecí de dizer. Se você não sabe aonde está o arquivo no disco rígido, nem sabe a pasta, tem outros jeitos de localizar:

1) com comando Find:

supondo você está procurando pelo arquivo chamado GLIBC e não sabe onde ele está, é simples. Mas use o comando Find como Root, porquê ele é sensível às permissões e não acessará as pastas sem acesso, portanto execute assim:

$ sudo find / -name glibc -type f

2) Tem um jeito ainda mais fácil. Veja se sua Distro tem instalado um pacote chamado "mlocate", geralmente tem, mas se não tiver, instale-o. Atualize o banco de Dados dele, detalhes:

http://www.vivaolinux.com.br/dica/Como-usar-o-Locate

Agora simplesmente, vá para a pasta Raiz e execute o comando Locate:

$ cd /
$ locate -i glibc

Aqui neste Site, você encontrará alguns úteis comandos de terminal:

http://www.pixelbeat.org/cmdline_pt_BR.html



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts