Je m'assure juste d'avoir bien compris - j'appelle
ldd /path/to/executable
et il renvoie "pas un exécutable dynamique". Cela signifie qu'il ne dépend pas d'autres bibliothèques, n'est-ce pas? Si oui, cela signifie-t-il qu'il peut être transféré vers une autre boîte Ubuntu sans se soucier des dépendances?
compiling
shared-library
Jason
la source
la source
ldd
imprime toujours les dépendances 32 bits.@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écessiteia32-libs
(n'est plus disponible). Ce moyen à la foisdpkg
et neapt-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 peuxchroot /sda2
etldd
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
etapt-get
, j'ai édité/var/lib/dpkg/status
, trouver le package pour mon service et suppriméia32-libs
. Maintenantdpkg
etapt-get
heureuxCela 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)
la source