L’utilitaire ldd est pratique pour examiner les dépendances d’un exécutable ou d’une bibliothèque. Dans cet article, nous verrons les alternatives, puisqu’il n’existe pas sur les Synology.
On suppose que vous êtes un familier de l’installation de paquets Linux sur votre Synology avec ipkg et que l’accès au Synology via Telnet ou SSH n’a plus de secrets pour vous.
Donc, vous vous êtes lancé dans les grandes manoeuvres en installant et/ou compilant vos outils préférés de monitoring et de développement, mais vous êtes tombés sur un hic. Car à un moment donné on finit toujours par obtenir un message du type « undefined symbol », « undefined reference »…
Le problème est que l’utilitaire ldd n’existe pas sur le Synology. Il y a cependant des alternatives avec les utilitaires objdump et readelf. Une fois qu’ipkg est installé sur le Synology, lancer la commande :
ipkg install binutils
Voici deux exemples d’utilisation avec chacun des deux outils :
objdump -x xdebug.so |grep NEEDED
NEEDED libm.so.6
NEEDED libc.so.6
Avec la commande readelf -d xdebug.so :
Dynamic section at offset 0x4000c contains 26 entries:
Tag Type Name/Value
0x00000001 (NEEDED) Shared library: [libm.so.6]
0x00000001 (NEEDED) Shared library: [libc.so.6]
0x0000000e (SONAME) Library soname: [xdebug.so]
0x0000000c (INIT) 0x5c08
0x0000000d (FINI) 0x392e4
0x00000019 (INIT_ARRAY) 0x40000
…
Que l’ont peut également filtrer avec readelf -d xdebug.so |grep NEEDED.
BONUS : On peut également se servir de readelf pour vérifier qu’un exécutable ne nécessite aucune dépendance. Par exemple :
DiskStation> readelf -d wiki
Renverra ce message si l’exécutable wiki ne requiert aucune bibliothèque :
There is no dynamic section in this file.
2 réponses sur « Il n’y a pas d’utilitaire ldd sur mon Syno ! »
Bonjour,
Problématique effectivement…
Sur DSM 3.2 d’un DS209 II+, ces commandes n’existent pas…
Autre solution ?
Elles ne sont pas installées de base. Il faut les installer avec IPKG. Voici la marche à suivre :
– Lire mon billet à propos de l’installation des applications Linux supplémentaires sur un Synology.
– Lancer la commande ipkg install binutils une fois qu’ipkg est installé sur le Synology.
Et voilà !