web-dev-qa-db-fra.com

ldd a commencé à me montrer «pas un exécutable dynamique»

Je suis un peu confus parce que je ne comprends pas pourquoi cela se produit:
Les derniers changements sur le système dont je me souviens étaient

  • installé g ++ 5 pour l'ancien projet (déjà supprimé)
  • apt autoclean
  • supprimé cache ldconfig (devinez que c'est la raison)

Maintenant, je ne peux pas lancer certaines applications. Ldd me dit que ce n'est "pas un exécutable dynamique"

igor@Linbox:/lib/i386-linux-gnu$ ldd libssl.so.1.0.0 
    is not a dynamic executable

igor@Linbox:/lib/i386-linux-gnu$ ldd libselinux.so.1 
    is not a dynamic executable

igor@Linbox:/bin$ ldd dd 
    linux-vdso.so.1 =>  (0x00007fff0b380000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb618c76000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fb619269000)           

igor@Linbox:/lib/x86_64-linux-gnu$ ldd libc.so.6 
    /lib64/ld-linux-x86-64.so.2 (0x00007fcb44373000)
    linux-vdso.so.1 =>  (0x00007ffed8f33000)

Version: Linux Linbox 4.13.0-46-generic # 51-Ubuntu SMP Mar 12 Juin 12:36:29 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Aussi j'ai vérifié qu'il est toujours présent:

// for running x32 applications on x64 system
Sudo dpkg --add-architecture i386
Sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386

Depuis que j'ai retiré ld.so.cache j'ai fait Sudo ldconfig. Il y a un nouveau cache dans /etc/ld.so.cache

Est-ce que je manque une bibliothèque?

Vérifications de fichiers ajoutées:

file /lib/i386-linux-gnu/libssl.so.1.0.0
/lib/i386-linux-gnu/libssl.so.1.0.0: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=c1e3854cb8b86f1006dc391d23f102ea1184cf25, stripped
file /lib/i386-linux-gnu/libselinux.so.1
/lib/i386-linux-gnu/libselinux.so.1: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=396cda857e41036061599a59c9f5fe62d7b50c4d, stripped
dpkg -S /lib/i386-linux-gnu/libssl.so.1.0.0
libssl1.0.0:i386: /lib/i386-linux-gnu/libssl.so.1.0.0
dpkg -S /lib/i386-linux-gnu/libselinux.so.1
libselinux1:i386: /lib/i386-linux-gnu/libselinux.so.1

Vérifié libx32 des commentaires:

igor@Linbox:/lib/i386-linux-gnu$ ls -l /libx32/ld*
-rwxr-xr-x 1 root root 155092 Jan 12  2018 /libx32/ld-2.26.so
lrwxrwxrwx 1 root root     10 Jan 12  2018 /libx32/ld-linux-x32.so.2 -> ld-2.26.so
2
IgorZ

J'ai résolu le problème (merci à ubfan1) en mettant à jour le noyau de 4.13.0-46-generic à 4.15.0-39-generic:

$ uname -a
Linux Linbox 4.15.0-39-generic #42-Ubuntu SMP Tue Oct 23 15:48:01 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.1 LTS
Release:    18.04
Codename:   bionic

/lib/i386-linux-gnu$ ldd libselinux.so.1 
    linux-gate.so.1 (0xf7fca000)
    libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xf7ee6000)
    libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf7ee1000)
    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7d05000)
    /lib/ld-linux.so.2 (0xf7fcc000)
    libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf7ce6000)
0
IgorZ

Bug 1616609, ldd rapporte à tort "pas un exécutable dynamique" lorsque le chargeur de l'exécutable n'est pas présent, est probablement la cause du problème (comme suggéré par steeldriver). Réinstallez le paquet libc6-x32 pour le récupérer. Pensez à vous ajouter au bogue, il sera peut-être corrigé un jour - un correctif est même suggéré.

1
ubfan1