执行' perl Makefile.PL'时出错:找不到net-snmp-config

时间:2018-05-24 16:08:04

标签: perl installation snmp dependency-management net-snmp

我正在尝试安装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

1 个答案:

答案 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中,然后运行该选项以获取LIBSCFLAGS

修改第83-85行只是LIBSnet-snmp-config可以设置的方式之一。在你的情况下,似乎第77和79行无法这样做,可能是因为他们找不到char date[14] = "2359591234567";