Не удается найти MIME/Types.pm в @INC в /usr/local/share/perl/5.10.1/Dancer/MIME.pm, строка 7.

Я очень новичок в программировании, поэтому прошу прощения, если пропустил что-то очевидное.

Я следую указаниям на странице https://github.com/keeth/Net-OAuth/blob/master/README и получил следующую ошибку:

Can't locate MIME/Types.pm in @INC
(@INC contains: /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 
/usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10
/usr/local/lib/site_perl .) at /usr/local/share/perl/5.10.1/Dancer/MIME.pm line 7.

Похоже, в модуле perl Dancer/MIME.pm есть ошибка? Если это так, я не знаю, как я мог бы отладить это.

Дополнение: дополнительные сообщения об ошибках.

$ ./mayor-emanuel.pl Can't locate HTTP/Body.pm in @INC (@INC contains: /etc/perl 
/usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 
/usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at 
/usr/local/share/perl/5.10.1/Dancer/Request.pm line 12. BEGIN failed--compilation aborted at 
/usr/local/share/perl/5.10.1/Dancer/Request.pm line 12. Compilation failed in require at 
/usr/local/share/perl/5.10.1/Dancer/Route.pm line 11. BEGIN failed--compilation aborted at 
/usr/local/share/perl/5.10.1/Dancer/Route.pm line 11. Compilation failed in require at
/usr/local/share/perl/5.10.1/Dancer/Route/Registry.pm line 5. BEGIN failed--compilation 
aborted at /usr/local/share/perl/5.10.1/Dancer/Route/Registry.pm line 5. Compilation failed 
in require at /usr/local/.../Dancer/App.pm line 10. BEGIN failed--compilation aborted at 
/usr/local/share/perl/5.10.1/Dancer/App.pm line 10. Compilation failed in require at 
/usr/local/share/.../Dancer.pm line 13. BEGIN failed--compilation aborted at 
/usr/local/share/perl/5.10.1/Dancer.pm line 13. Compilation failed in require at ./mayor-
emanuel.pl line 5. BEGIN failed--compilation aborted at ./mayor-emanuel.pl line

Кстати, я использую Ubuntu 10.04.

Вопрос: что это значит и что мне с этим делать?


person isomorphismes    schedule 10.03.2011    source источник
comment
stackoverflow.com/questions/65865/   -  person daxim    schedule 10.03.2011
comment
@daxim Спасибо! Я посмотрю на это.   -  person isomorphismes    schedule 15.03.2011


Ответы (3)


Либо модуль MIME::Types не установлен в вашей системе, либо его нет на вашем пути. Если это первое, то установите его (это можно сделать с помощью cpan). Если он присутствует, но не в обычном месте (читай: один из каталогов, перечисленных в ошибке «@INC содержит:»), вы можете добавить этот каталог, добавив

use lib '/path/to/library';

перед оператором use MIME::Types;.

person caw    schedule 10.03.2011
comment
Я сделал $cpan> install MIME::Types, как показано ниже, в ответ на @Ted Hopp. Я ничего не помещал в странное место, но на всякий случай добавил свой текущий каталог с use lib '/home/me/project/'. Все еще получаю сообщение об ошибке в комментариях OP. - person isomorphismes; 10.03.2011
comment
Спасибо также за столь быстрый ответ! - person isomorphismes; 10.03.2011

Похоже, вам нужно установить модуль MIME::Types. .

person Ted Hopp    schedule 10.03.2011
comment
cpan[35]› install MIME::Types Выполняется установка модуля 'MIME::Types' Выполняется make для M/MA/MARKOV/MIME-Types-1.31.tar.gz Уже распакован в каталог Уже создан Выполняется make test Уже успешно протестирован Выполняется make install Уже безуспешно пробовал - person isomorphismes; 10.03.2011
comment
@Ted Hopp Спасибо за быстрый ответ! Но когда я пытаюсь установить MIME::Types, я получаю указанное выше (много [...] опущено) - person isomorphismes; 10.03.2011
comment
Если make install не удался, у вас может не быть разрешения, особенно если вы устанавливаете perl в системе как обычный пользователь. Вы можете сказать cpan запустить make install как «sudo make install», и он запросит у вас пароль. В cpan введите 'o conf make_install_make_command = 'sudo make install'. - person Jim Brandt; 10.03.2011
comment
Спасибо @Джим Брандт. Сегодня вечером я сделал cpan> o conf make_install_make_command='sudo make install', а затем сделал cpan> clean MIME::Types, а также cpan> clean Dancer. все еще получаю ошибку в комментариях OP выше. - person isomorphismes; 10.03.2011
comment
Вы делали их в одном и том же сеансе cpan? В противном случае этот параметр конфигурации o conf будет потерян. o conf commit сохранит его навсегда. Возможно, вы также захотите выполнить o conf mbuild_install_build_command = 'sudo ./Build' для обработки другого стиля установки модулей Perl. - person Jim Brandt; 10.03.2011
comment
@ Джим Брандт Я сделал их на одном и том же cpan сеансе. Только что сделал cpan > o conf mbuild_install_build_command = 'sudo ./Build', и я помню, что сделал o conf commit, так что это должно продолжаться в течение сеансов CPAN. Тем не менее, проблема в OP не устранена. - person isomorphismes; 10.03.2011
comment
Можете ли вы опубликовать все сообщения из оболочки cpan в своем вопросе? - person Jim Brandt; 11.03.2011
comment
@ Джим Брандт Конечно, я переместил их из комментариев в тело вопроса. - person isomorphismes; 15.03.2011

ссылка на geekStuff прекрасно объясняет процедуру установки Perl-модуля. Пожалуйста, перейдите по ссылке.

Чтобы установить отдельный модуль Perl:

  1. Загрузите модуль perl, вы можете найти его на CPAN.

  2. Извлеките его, а затем make

$ gzip -d XML-Parser-2.36.tar.gz  
$ tar xvf XML-Parser-2.36.tar

сейчас make

$ perl Makefile.PL  
Checking if your kit is complete...  
Looks good  
Writing Makefile for XML::Parser::Expat  
Writing Makefile for XML::Parser  
$ make  
$ make test  
$ make install

С помощью этого метода вы установите один модуль, но если у него есть какой-либо зависимый модуль, вам нужно будет установить его вручную. В качестве альтернативы лучший способ установить модули Perl — это cpan

Сначала установите cpan один раз

 $ yum install perl-CPAN

и после настройки используйте cpan для установки любого модуля. Он также позаботится об установке всех зависимых модулей.

person mtk    schedule 13.09.2012