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

Error when executing 'perl Makefile.PL': Can't find net-snmp-config

我正在尝试安装 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(我认为是正确的),所以我想知道是不是我把它放在了错误的目录中?目前在 home/ (~, 即 ~/net-snmp-5.7.3/).

如果有 Perl 经验的人可以解释第一段代码(第 83 到 85 行)的作用,那将是有益的!

OS: Raspbian

编辑:
备注:
net-snmp-config 是直接在 net-snmp 目录 (~/net-snmp-5.7.3/net-snmp-config) 中找到的 shell (.sh) 脚本。
Makefile.PL 可以在这里找到:NetSNMP-OID-5.0404/Makefile.PL

我自己没有使用过这个模块,但是通过快速查看源代码,试试

perl Makefile.PL --NET-SNMP-CONFIG ~/net-snmp-5.7.3/net-snmp-config
  • %opts 来自 GetOptions,它解析命令行参数 (source)。
  • %Params是根据%opts、机型等因素产生的。例如,$Params{LIBS} 被 运行 net-snmp-config 赋值为 here

NET-SNMP-CONFIG 命令行选项存储在 $opts{nsconfig} 中,然后 运行 获取 CFLAGSLIBS 必要的。

Edit 第 83-85 行只是 CFLAGSLIBS 可以设置的方式之一。在您的情况下,第 77 和 79 行似乎无法这样做,可能是因为它们找不到 net-snmp-config.