snmptt 无法加载 PERL 模块

snmptt 无法加载 PERL 模块

CentOS 7 我无法继续启动 snmptt。我用它来将 trap 翻译成 nagios。我一直在研究我的系统,在我从 tarball 中卸载了额外的 net-snmp 安装后,出现了这个问题。我有 yum 安装。

snmptt 状态输出:

Compilation failed in require at (eval 12) line 1.
died at /usr/sbin/snmptt line 426
Could not load the Perl module SNMP!

yum perl 软件包已安装

[root@sup-han-vrt perl5]# yum list installed | grep net-snmp-perl
net-snmp-perl.x86_64                  1:5.7.2-24.el7_2.1       @base
[root@sup-han-vrt perl5]# yum list installed | grep perl-Net-SNMP
perl-Net-SNMP.noarch                  6.0.1-7.el7              @epel

PERL @INC

env -i perl -V
  @INC:
/usr/local/lib64/perl5
/usr/local/share/perl5
/usr/lib64/perl5/vendor_perl
/usr/share/perl5/vendor_perl
/usr/lib64/perl5
/usr/share/perl5

SNMP.pm 位于两个 lib64 目录中,因此不确定问题是什么。请帮忙。

答案1

“Can't load lib.../perl5/.../*.so”表示 XS 模块(即不是纯 Perl 模块,而是包含 C 的模块)未正确安装。在这种情况下,在 RedHat 上,/usr/local树指示供应商管理空间之外的内容,因此是某种自定义安装。解决方案包括:

  • 取消自定义安装并使用供应商软件包。可能是最好的选择,因为可以在 KickStart 文件或其他包清单中指定所需的 RPM。
  • 重新安装自定义模块。这通常需要更多工作,但如果供应商软件包无可救药地过时或有其他错误,则可能是必要的。理想情况下,不应对公共目录(例如 )执行此操作/usr/local,而应对自定义树执行此操作,例如通过安装现代 PerlPerl::构建,或者到一个特殊的本地::lib应用程序或服务的模块目录。

相关内容