Contornando problemas de falta de bibliotecas - Links simbólicos

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

[ Hits: 9.174 ]

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

ZSWAP (SWAP na RAM) em Linux - Controlável: "ligável", "desligável" e outros métodos

Rescatux e SuperGRUB2 - Recuperação emergencial de boot e/ou de GRUB

Instalador universal de pacotes PackageKit e suas GUIs em qualquer distro, inclusive no Sabayon

Executando Dolphin e Editores de Texto como Root no KDE 5

SwiftEasel - Novo navegador otimizado em função da distro e arquitetura de hardware

Leitura recomendada

Colocando um site no ar sem o www

Adeus para chiados na VIA VT8233 (som)

Trabalhando com arquivos DEB

Fontes ultra-minúsculas após driver NVidia [Resolvido]

Funcionamento Básico do Netplan

  

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