2017-08-29 1 views
0

Lorsque je travaille sur SNMP, je ne suis pas en mesure d'exécuter snmpwalk ou snmpset. Puis j'ai vérifié snmpd -H.Quels sont les impacts de (dlopen failed: undefined symbol: memdup) par rapport à SNMP?

Je vois une erreur:

dlopen (/lib/libvcpeLiTapMediationTable.so) a échoué: /lib/libvcpeLiTapMediationTable.so: non défini symbole: memdup dlopen (/lib/libvcpeLiTapStreamTable.so) a échoué: /lib/libvcpeLiTapStreamTable.so: undefined symbole: memdup

Je pense que ma bibliothèque ne s'ouvre peut-être pas dynamiquement à cause de cela.

Lorsque je charge mes paquets dans CentOS en tant que rpms, je n'ai pas d'erreur. Mais pour le même code, quand je charge mes paquets dans Ubuntu en paquets debian, je vois cette erreur.

Requêtes:

  1. est-il un problème avec l'installation SNMP (car il fonctionne sur CentOS mais pas sur Ubuntu)? Ou est-ce qu'il manque quelque chose dans mes paquets Debian?

  2. Veuillez expliquer l'impact de cette erreur sur mes opérations.

Toutes les réponses pertinentes seront utiles car je suis nouveau à ce sujet.

Merci.

Répondre

0

Votre libvcpeLiTapMediationTable.so dépend de la fonction memdup(). Ceci est défini sur votre CentOS et partout où il a été construit, soit dans Net-SNMP ou l'une des bibliothèques ou libvcpeLiTapMediationTable.so liens à à l'exécution, mais n'est pas défini sur votre Ubuntu. Par conséquent, il ne peut pas être chargé à ne fonctionnera pas.

Net-SNMP défini memdup() dans snmplib/tools.c, mais cela a été renommé netsnmp_memdup() pour éviter les conflits avec d'autres bibliothèques qui pourraient définir leur propre version selon change history. Peut-être que vous utilisez deux versions différentes de Net-SNMP entre vos deux distributions, une avec et une sans ce changement.

+0

Oui, l'information a été utile. Quel est l'impact de telles erreurs? Est-ce que les opérations snmp sur ces tables ne fonctionneront pas du tout? –

+0

J'imagine pas. Je devine juste ici basé sur le nom de dossier, mais j'imagine que le dossier met en application une table [probablement propriétaire, puisque je ne peux rien trouver à son sujet] en tant que sous-agent qui est chargé dynamiquement à l'exécution dans votre agent principal pour fournir sa fonctionnalité. Comme il ne peut pas être chargé en raison de cette erreur, tout ce qu'il implémente ne sera pas ajouté à l'agent principal. –

+0

Pourquoi n'avons-nous pas ce type d'erreur au moment de la compilation puisqu'il s'agit d'une erreur 'symbole non défini'? –