J'ai créé un script Perl et testé sur deux serveurs exécutant Net::SNMP 5.3.1-19, mais maintenant je suis en train de l'exécuter sur un autre serveur et que je reçois l'erreur suivante:Pourquoi Net :: SNMP essaie-t-il de charger le mauvais fichier libnetsnmp.so?
Can't load '/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/NetSNMP/default_store/default_store.so' for module NetSNMP::default_store: libnetsnmp.so.15: cannot open shared object file: No such file or directory at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/DynaLoader.pm line 230. at /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/SNMP.pm line 16 Compilation failed in require at /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/SNMP.pm line 16. BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/SNMP.pm line 16. Compilation failed in require at /shaw/neteye/perl_scripts/cmtsmonitord.pl line 9. BEGIN failed--compilation aborted at /shaw/neteye/perl_scripts/cmtsmonitord.pl line 9.
Pourquoi le chargeur se plaint-il de libnetsnmp.so.15? J'ai libnetsnmp.so.10 installé dans tous les autres serveurs et cela fonctionne très bien. Les liens symboliques pointent vers la même version (10), pas 15. Est-ce pas nécessaire pour une version ultérieure de Net :: SNMP (5.4.2.1)?
[[email protected] lib]$ sudo /sbin/ldconfig |grep snmp
/sbin/ldconfig: /usr/lib/libgd.so.2 is not a symbolic link
[[email protected] lib]$ sudo /sbin/ldconfig -p |grep snmp
libsnmp.so.10 (libc6) => /usr/lib/libsnmp.so.10
libnetsnmptrapd.so.10 (libc6) => /usr/lib/libnetsnmptrapd.so.10
libnetsnmpmibs.so.10 (libc6) => /usr/lib/libnetsnmpmibs.so.10
libnetsnmphelpers.so.10 (libc6) => /usr/lib/libnetsnmphelpers.so.10
libnetsnmpagent.so.10 (libc6) => /usr/lib/libnetsnmpagent.so.10
libnetsnmp.so.10 (libc6) => /usr/lib/libnetsnmp.so.10
Pourquoi est-il tente d'utiliser une version plus récente de la bibliothèque dynamique dans ce serveur lorsque tous les paquets snmp sont les mêmes?
J'ai remarqué autre chose. Il existe deux ensembles de bibliothèques default_store.so.
/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/NetSNMP/agent/default_store/default_store.so /usr/lib/perl5/site_perl/5.8.8/ i386-linux-thread-multi/automatique/NetSNMP/default_store/default_store.so /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/auto/NetSNMP/agent/default_store/default_store.so /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/auto/NetSNMP/default_store/default_store.so
les machines qui fonctionnent bien seulement les ones vendor_perl, ce qui est est installé avec les RPM. Quelle est la différence entre les 2? (fournisseur et base) comment forcer perl à utiliser l'add on dans vendoer_perl?
Merci!
Veuillez ajouter la sortie de 'perl -V' à la question. –