Contornando problemas de falta de bibliotecas - Links simbólicos

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

[ Hits: 6.346 ]

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

Kuroo - Facilitando a instalação de pacotes no Gentoo

Bashish - Modifique e configure seu terminal (bash)

Firefox - Melhorando o áudio e o vídeo

Forçando a montagem do sistema de arquivos e do disco rígido para corrigir problemas

GTK-Splitter - Dividindo arquivos grandes em partes menores com facilidade

Leitura recomendada

Definindo os keybindings de volume no Xfce + PulseAudio

Configurando o teclado pelo arquivo 10-keyboard.conf

Iniciando sistema no modo gráfico ou modo texto (configurando "runlevel" padrão no Systemd)

Mudando a tela de login do Ubuntu 12.10

Configurando placa de rede no Slackware 10.2

  

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
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts