@Calmarius est correct, cela se produit si vous considérez un exe 32 bits, sans même les bibliothèques 32 bits de base.
J'essaie de mettre à niveau mon système (une nouvelle installation d'Ubuntu 16.04, à partir du 12.04), je dois installer un ancien service 32 bits propitiatoire avserver
, qui nécessite ia32-libs
(n'est plus disponible). Ce moyen à la fois dpkg
et ne apt-get
sont pas satisfaits (quoi que je fasse, il me pousse à apt-get -f install
, et si je lance cela, il insiste pour que je désinstaller le package de service), et mon service ne démarre pas.
Pour prouver que cela est dû aux bibliothèques 32 bits manquantes, j'ai monté mon ancien système (Ubuntu 12.04, avec ia32-libs
et bibliothèques 32 bits) /sda2
. Assurer /opt
(contenant mon binaire 32 bits) est monté dans /sda2/opt
, je peux chroot /sda2
et ldd
puis fonctionne comme prévu.
Pour résoudre ce problème, j'aurais pu installer manuellement tous les packages de bibliothèque dépendants avec: i386 (arch). Cependant, j'ai décidé plutôt que d'essayer de comprendre quelles étaient mes dépendances, j'ai installé wine (qui est principalement en 32 bits, et installe donc les bibliothèques de base et une charge supplémentaire dont je n'ai pas vraiment besoin, mais je suis d'accord avec ça).
Pour corriger dpkg
et apt-get
, j'ai édité /var/lib/dpkg/status
, trouver le package pour mon service et supprimé ia32-libs
. Maintenant dpkg
et apt-get
heureux
Cela fait, ldd
rapporte joyeusement: -
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)