2009-06-22 2 views
0

나는 펄 스크립트를 작성 Net::SNMP 5.3.1-19를 실행하는 서버의 몇 가지에 그것을 테스트,하지만 지금은 다른 서버에서 실행하기 위해 노력하고있어 나는 다음과 같은 오류 받고 있어요 :왜 Net :: SNMP가 잘못된 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.

왜 로더가 libnetsnmp.so.15에 대해 불평하고 있습니까? 나는 libnetsnmp.so.10을 다른 모든 서버에 설치했고 제대로 작동합니다. 심볼릭 링크는 15가 아닌 동일한 버전 (10)을 가리키고 있습니다. 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 

모든 snmp 패키지가 동일한 경우이 서버에서 최신 버전의 동적 라이브러리를 사용하는 이유는 무엇입니까?

다른 것으로 나타났습니다. default_store.so 라이브러리에는 2 세트가 있습니다.

/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/auto/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 것입니다

에만 vendor_perl의 사람이 잘 작동되는 기계, RPM과 함께 설치됩니다. 2의 차이점은 무엇입니까? (공급 업체 및 기반) 어떻게 펄을 강제로 추가 기능을 vendoer_perl에서 사용합니까?

감사합니다.

+0

질문에 'perl -V'의 출력을 추가하십시오. –

답변

1

그것은

  • /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/auto/NetSNMP/default_store/default_store.so

libntsnmp.so의 특정 버전에 링크 위의 파일 모두에 대한 ldd를 실행하는 것을, 그리고 볼 수 있습니다 무엇 출력이 알려줍니다.

0

libnetsnmp.so.15 알 수없는 인쇄의 경우 :
찾기/-name libnetsnmp.so.15 CP /.../libnetsnmp.so.15는/usr/lib 디렉토리 또는 모든 libs가 할당되는 디렉토리 그리고 모두 괜찮을 것입니다 ...