2015-03-16 3 views
1

, пожалуйста, помогите. Я пытаюсь скомпилировать модуль DBL-Oracle-1.74 Perl и сбой, потому что явно Perl Не удается найти DBI.pm. Но DBI.pm там ... Я использую скомпилирован подОшибка при компиляции DBD-Oracle-1.74 | Невозможно найти DBI.pm

/ag/smartcube/perl/bin/perl 

и сдачи модулей внутри:

/ag/smartcube/perl/modules 

каталог. Эта система отключена от интернета, поэтому никакого cpan или что-то вроде этого не разрешено. Только ручная компиляция.

cd DBD-Oracle-1.74 
    [[email protected] DBD-Oracle-1.74]# /ag/smartcube/perl/bin/perl Makefile.PL INSTALL_BASE=/ag/smartcube/perl/modules 
    Can't locate DBI.pm in @INC (@INC contains: /ag/smartcube/perl/lib/5.10.0/x86_64-linux /ag/smartcube/perl/lib/5.10.0 /ag/smartcube/perl/lib/site_perl/5.10.0/x86_64-linux /ag/smartcube/perl/lib/site_perl/5.10.0 .) at Makefile.PL line 21. 
    BEGIN failed--compilation aborted at Makefile.PL line 21. 
    [[email protected] DBD-Oracle-1.74]# find /ag/smartcube/ -iname DBI.pm 
    /ag/smartcube/perl/modules/lib/perl5/x86_64-linux/Bundle/DBI.pm 
    /ag/smartcube/perl/modules/lib/perl5/x86_64-linux/DBI.pm 
    /ag/smartcube/perl/modules/DBI-1.633/lib/Bundle/DBI.pm 
    /ag/smartcube/perl/modules/DBI-1.633/DBI.pm 
    /ag/smartcube/perl/modules/DBI-1.633/blib/lib/Bundle/DBI.pm 
    /ag/smartcube/perl/modules/DBI-1.633/blib/lib/DBI.pm 

Пожалуйста, помогите, как «рассказать» perl, что DBI.pm есть.

Спасибо

+1

Почему вы хотите использовать '/ AG/smartcube/Perl/modules' в предпочтении к одному из четырех каталогов, где Perl уже ищет? Я предполагаю, что вы установили «DBI» таким же образом, но perl не может найти его, потому что местоположение не находится в '@ INC'. Вы должны переустановить «DBI» без установки «INSTALL_BASE», а затем «DBD :: Oracle» должен установить правильно - также без «INSTALL_BASE». – Borodin

+0

Я должен установить как 30 модулей вручную [есть еще одна версия Perl в системе, на которую я не могу касаться], так что/ag/smartcube/perl/modules кажется хорошей идеей. Да, я установил все модули следующим образом:/ag/smartcube/perl/bin/perl Makefile.PL INSTALL_BASE =/ag/smartcube/perl/modules. потому что я понятия не имел, что еще делать. – user1821820

ответ

0

Вы должны быть установлены модули с помощью

/ag/smartcube/perl/bin/perl Makefile.PL 
make 
make test 
make install

Так что модули вы построили бы в тех местах, где /ag/smartcube/perl/bin/perl ожидает, чтобы найти их.

Кроме того, нет веских оснований для использования 5.10.0, предпочтительно 5.10.1.

От perldoc perl5101delta:

  • 5.10.0 непреднамеренно отключить оптимизацию, что вызвало ощутимое падение производительности в присвоении списка, например, часто используется для назначения параметров функции от @_. Оптимизация была восстановлена, а регрессия производительности исправлена.

  • И другие ...