@Calmarius está correto, isso acontece se você considerar um exe de 32 bits, sem bibliotecas básicas de 32 bits.
Estou tentando atualizar meu sistema (uma nova instalação do Ubuntu 16.04, a partir de 12.04), tenho que instalar um antigo serviço de 32 bits propiciatório avserver
, que requer ia32-libs
(não está mais disponível). Isto significa tanto dpkg
e apt-get
são infelizes (o que quer que eu faça, leva-me a apt-get -f install
, e se eu executar isso, ele insiste que eu desinstalar o pacote de serviços), e meu serviço não será iniciado.
Para provar que isso se deve a falta de bibliotecas de 32 bits, montei meu sistema antigo (Ubuntu 12.04, com ia32-libs
e bibliotecas de 32 bits) /sda2
. Assegurando que /opt
(contendo meu binário de 32 bits) esteja montado /sda2/opt
, eu posso chroot /sda2
e, em ldd
seguida, execute conforme o planejado.
Para corrigir isso, eu poderia ter instalado manualmente todos os pacotes de bibliotecas dependentes com: i386 (arch). No entanto, decidi, em vez de tentar descobrir quais eram minhas dependências, instalei o wine (que geralmente é de 32 bits e instala as bibliotecas básicas e uma carga maior do que realmente não preciso, mas estou de acordo com isso).
Para corrigir dpkg
e apt-get
, editei /var/lib/dpkg/status
, localizando o pacote para o meu serviço e removi ia32-libs
. Agora dpkg
e apt-get
é feliz
Feito isso, ldd
felizmente relata: -
root@withnail:/opt/<service path># ldd avserver
linux-gate.so.1 => (0xf77a6000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf778f000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf7772000)
libuuid.so.1 => /lib/i386-linux-gnu/libuuid.so.1 (0xf776b000)
libresolv.so.2 => /lib/i386-linux-gnu/libresolv.so.2 (0xf7752000)
libcrypt.so.1 => /lib/i386-linux-gnu/libcrypt.so.1 (0xf7720000)
libktssl.so.1.0.0 => /opt/<service path>/libktssl.so.1.0.0 (0xf76cb000)
libktcrypto.so.1.0.0 => /opt/<service path>/libktcrypto.so.1.0.0 (0xf756b000)
libktz.so.1 => /opt/<service path>/libktz.so.1 (0xf7558000)
librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xf754f000)
libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf73d8000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf7383000)
libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf7366000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf71af000)
/lib/ld-linux.so.2 (0x565b1000)