我正在尝试安装NetSNMP-OID(版本5.0404),但是当我运行' perl Makefile.PL' (在NetSNMP-OID目录中)我收到消息:
You need to install net-snmp first (I can't find net-snmp-config) at Makefile.PL line 91.
使用' print'向Makefile.PL添加一些检查点后语句,我发现它没有执行以下行(83到85):
if (lc($opts->{'insource'}) eq "true") {
$Params{'LIBS'} = "-L../../snmplib/.libs -L../../snmplib/ " . $Params{'LIBS'};
$Params{'CCFLAGS'} = "-I../../include " . $Params{'CCFLAGS'};
这可能是为什么它在90/91崩溃了?:
if ($Params{'LIBS'} eq "" || $Params{'CCFLAGS'} eq "") {
die "You need to install net-snmp first (I can't find net-snmp-config)";
}
我安装了net-snmp(我认为是正确的),所以我想知道是否有错误的目录?它目前在家/(〜,即〜/ net-snmp-5.7.3 /)。
如果有Perl经验的人可以解释第一段代码(第83到85行)正在做什么,那也是有益的!
操作系统:Raspbian
修改
注:
net-snmp-config
是直接在net-snmp目录(〜/ net-snmp-5.7.3 / net-snmp-config)中找到的shell(.sh)脚本。
可以在此处找到Makefile.PL:NetSNMP-OID-5.0404/Makefile.PL
答案 0 :(得分:2)
我自己没有使用过模块,但是从快速查看源代码,请尝试
perl Makefile.PL --NET-SNMP-CONFIG ~/net-snmp-5.7.3/net-snmp-config
%opts
来自GetOptions
,它解析命令行参数(source)。%Params
根据%opts
,机器类型和其他因素生成。例如,$Params{LIBS}
通过运行net-snmp-config
分配NET-SNMP-CONFIG
。 $opts{nsconfig}
命令行选项存储在CFLAGS
中,然后运行该选项以获取LIBS
和CFLAGS
。
修改第83-85行只是LIBS
和net-snmp-config
可以设置的方式之一。在你的情况下,似乎第77和79行无法这样做,可能是因为他们找不到char date[14] = "2359591234567";
。