Contornando problemas de falta de bibliotecas - Links simbólicos

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

[ Hits: 9.205 ]

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

Recuperar o som no Sabayon

RadioTray no Sabayon Linux 17.04

Instalando e rodando múltiplas interfaces gráficas em Linux tipo Debian

Uso avançado de Gparted - Protegendo seu Linux

Instalar programas em Sabayon com apenas alguns cliques de mouse

Leitura recomendada

Trinity Desktop no Linux Mint

Temas GTK no Fluxbox para Zenwalk

Instalar driver qca9377 no Ubuntu e derivados

Disponibilidade de impressoras de rede via CUPS

Instalando o Dolphin e deixando-o "pretinho" acompanhando o tema escuro do Gnome-Shell

  

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