Ошибка при выполнении perl Makefile.PL: не удается найти net-snmp-config - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь установить 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.

После добавления некоторыхНа контрольных точках Makefile.PL, используя операторы «print», я обнаружил, что он не выполняет следующие строки (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 - это сценарий оболочки (.sh)находится непосредственно в каталоге net-snmp (~ / net-snmp-5.7.3 / net-snmp-config).
Makefile.PL можно найти здесь: NetSNMP-OID-5.0404 / Makefile.PL

1 Ответ

0 голосов
/ 24 мая 2018

Я не использовал модуль сам, но из краткого обзора источника, попробуйте

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 необходимые.

Edit Строки 83–85 - это только один из способов, которыми можно установить CFLAGS и LIBS.В вашем случае, кажется, что строки 77 и 79 не в состоянии сделать это, вероятно, потому что они не могут найти net-snmp-config.

...