Respostas:
Você está em um sistema de 64 bits e não possui suporte à biblioteca de 32 bits instalado.
(se você não usar o sudo em sua configuração, leia a nota abaixo)
A maioria dos sistemas Linux para desktop da família Fedora / Red Hat:
pkcon install glibc.i686
Possivelmente alguns sistemas desktop Debian / Ubuntu ?:
pkcon install ia32-libs
Fedora ou Red Hat, CentOS mais recente:
sudo dnf install glibc.i686
RHEL mais antigo, CentOS:
sudo yum install glibc.i686
RHEL ainda mais antigo, CentOS:
sudo yum install glibc.i386
Debian ou Ubuntu:
sudo apt-get install ia32-libs
você deve pegar a (primeira, principal) biblioteca de que você precisa.
Qualquer pessoa que precise instalar glibc.i686
ou glibc.i386
provavelmente também executará outras dependências da biblioteca. Para identificar um pacote que fornece uma biblioteca arbitrária, você pode usar
ldd /usr/bin/YOURAPPHERE
se você não tem certeza, /usr/bin
também pode voltar
ldd $(which YOURAPPNAME)
A saída será assim:
linux-gate.so.1 => (0xf7760000)
libpthread.so.0 => /lib/libpthread.so.0 (0xf773e000)
libSM.so.6 => not found
Verifique as bibliotecas ausentes (por exemplo, libSM.so.6
na saída acima) e, para cada uma, você precisa encontrar o pacote que a fornece.
Fedora / Red Hat Enterprise / CentOS:
dnf provides /usr/lib/libSM.so.6
ou, no RHEL / CentOS mais antigo:
yum provides /usr/lib/libSM.so.6
ou, no Debian / Ubuntu:
primeiro, instale e faça o download do banco de dados para apt-file
sudo apt-get install apt-file && apt-file update
depois pesquise com
apt-file find libSM.so.6
Observe o caminho do prefixo /usr/lib
no caso (usual); Raramente, algumas bibliotecas ainda vivem sob /lib
por razões históricas ... em sistemas de 64 bits típicos, bibliotecas de 32 bits viver em /usr/lib
e bibliotecas de 64 bits viver em /usr/lib64
.
(Debian / Ubuntu organizam bibliotecas de arquitetura múltipla de maneira diferente.)
O acima deve fornecer um nome de pacote, por exemplo:
libSM-1.2.0-2.fc15.i686 : X.Org X11 SM runtime library
Repo : fedora
Matched from:
Filename : /usr/lib/libSM.so.6
Neste exemplo, o nome do pacote é libSM
e o nome da versão de 32 bits do pacote élibSM.i686
.
Em seguida, você pode instalar o pacote para obter a biblioteca necessária usando pkcon
uma GUI, ou sudo dnf/yum/apt-get
conforme apropriado…. Por exemplo pkcon install libSM.i686
. Se necessário, você pode especificar a versão completamente. Por exemplo sudo dnf install ibSM-1.2.0-2.fc15.i686
.
Algumas bibliotecas terão um designador de "época" antes do nome; isso pode ser omitido (os curiosos podem ler as notas abaixo).
Incidencialmente, o problema que você está enfrentando implica que o banco de dados do RPM (resp. DPkg / DSelect) está corrompido ou que o aplicativo que você está tentando executar não foi instalado pelo gerenciador de pacotes. Se você é novo no Linux, provavelmente deseja evitar o uso de software de fontes diferentes do seu gerenciador de pacotes, sempre que possível ...
Tipo
su -c
toda vez que você vê sudo
, por exemplo,
su -c dnf install glibc.i686
O designador de "época" antes do nome é um artefato da maneira como as bibliotecas RPM subjacentes lidam com números de versão; por exemplo
2:libpng-1.2.46-1.fc16.i686 : A library of functions for manipulating PNG image format files
Repo : fedora
Matched from:
Filename : /usr/lib/libpng.so.3
Aqui, o 2:
pode ser omitido; apenas pkcon install libpng.i686
ou sudo dnf install libpng-1.2.46-1.fc16.i686
. (Isso implica vagamente algo como: em algum momento, o número da versão do libpng
pacote foi revertido e a "época" teve que ser incrementada para garantir que a versão mais recente fosse considerada "mais nova" durante as atualizações. Ou algo semelhante aconteceu. .)
Atualizado para esclarecer e cobrir as várias opções do gerenciador de pacotes mais detalhadamente (março de 2016)
Acabei de encontrar o mesmo problema em uma máquina CentOS 6.4 de 64 bits recém-instalada. Um único comando yum corrigirá isso mais 99% de problemas semelhantes:
yum groupinstall "Bibliotecas de compatibilidade"
Prefixe isso com 'sudo' ou execute como root, o que for melhor para você.
Em geral, quando você receber um erro como esse, basta
yum provides ld-linux.so.2
então você verá algo como:
glibc-2.20-5.fc21.i686 : The GNU libc libraries
Repo : fedora
Matched from:
Provides : ld-linux.so.2
e então basta executar o seguinte, como o BRPocock escreveu (caso você esteja se perguntando qual era a lógica ...):
yum install glibc.i686
Experimentar
$ yum provides ld-linux.so.2
$ yum update
$ yum install glibc.i686 libfreetype.so.6 libfontconfig.so.1 libstdc++.so.6
Espero que isso esclareça.
Só queria adicionar um comentário no BRPocock, mas não tenho privilégios suficientes.
Portanto, minha contribuição foi para todos que tentaram instalar o IBM Integration Toolkit a partir do pacote de barramento de integração da IBM.
Ao tentar executar o comando "Installation Manager" da pasta / Integration_Toolkit / IM_Linux (o arquivo a ser executado é "install"), você obtém o erro mostrado nesta postagem.
Instruções adicionais para corrigir esse problema, você encontrará na página da Web da IBM: https://www-304.ibm.com/support/docview.wss?uid=swg21459143
Espero que isso ajude quem estiver tentando instalar isso.
Eu adicionaria ao Debian que você precisa de pelo menos um compilador no sistema (de acordo com as bibliotecas Debian Stretch e Jessie de 32 bits ).
Eu instalei apt-get install -y gcc-multilib
para executar o arquivo executável de 32 bits no meu container docker com base no debian: jessie.
Você também pode instalar o OpenJDK de 32 bits ( .i686
). De acordo com o meu teste, ele será instalado e funcionará sem problemas.
sudo yum install java-1.8.0-openjdk.i686
Nota:
O pacote java-1.8.0-openjdk contém apenas o Java Runtime Environment . Se você deseja desenvolver programas Java, instale o pacote java-1.8.0-openjdk-devel .
Veja aqui para mais detalhes.