Почему модуль, установленный `cpanm`, не распознается?

Я установил Perl-5.12.2 с помощью perlbrew:

perlbrew install perl-5.12.2 -D=usethreads -D=useithreads -D=uselargefiles -f

Затем я переключился на эту версию и установил IPC::System::Simple с помощью cpanm,

Однако, когда я пытаюсь запустить свой скрипт, я получаю:

Can't locate IPC/System/Simple.pm in @INC (@INC contains: /home/dave/workspace/proj1/scripts/bin/../lib /home/dave/src/bioperl-live /home/dave/perl5/perlbrew/perls/perl-5.12.2/lib/site_perl/5.12.2/x86_64-linux-thread-multi /home/dave/perl5/perlbrew/perls/perl-5.12.2/lib/site_perl/5.12.2 /home/dave/perl5/perlbrew/perls/perl-5.12.2/lib/5.12.2/x86_64-linux-thread-multi /home/dave/perl5/perlbrew/perls/perl-5.12.2/lib/5.12.2 .) at /home/dave/workspace/proj1/scripts/bin/../lib/createLayout.pm line 14.

Я также нашел следующий каталог:~/perl5/lib/perl5/x86_64-linux-thread-multi/auto/IPC/System/Simpleно это пусто (я понятия не имею, если это что-то значит).

2 ответа

Решение

Что значит which cpanm из командной строки показать? Для вас это должно сообщить:

/home/dave/perl5/perlbrew/bin/cpanm

Если это нормально, то что же ls -l /home/dave/perl5/perlbrew/bin/cpanm шоу? Следует указать на:

cpanm -> /home/dave/perl5/perlbrew/perls/current/bin/cpanm

И наконец ls -l /Users/barry/perl5/perlbrew/perls/current должен указывать на Perl, на который вы переключились perlbrew:

/home/dave/perl5/perlbrew/perls/current -> perl-5.12.2

Все три из них должны быть такими, иначе что-то не так.

Если нет, то одна из вероятных проблем заключается в том, что cpanm указывает на другой установленный Perl. Тебе нужно иметь cpanm установлен для каждой версии Perl под perlbrew:

perlbrew switch perl-5.12.2
curl -L http://cpanmin.us | perl - App::cpanminus

Сейчас если which cpanm до сих пор не показывает perlbrew путь, то у вас есть $PATH проблема приоритета в вашем .bash_profile (или эквивалентный) файл. Это можно исправить, убедившись, что ваш perlbrew линия...

source /home/dave/perl5/perlbrew/etc/bashrc

... в файле профиля есть после любого другого export $PATH линий.

После повторного входа в систему вы можете подтвердить, что это правильно, выполнив echo $PATH и вы должны увидеть perlbrew в начале (слева) строки пути, т.е. что-то вроде этого:

/home/dave/perl5/perlbrew/bin:/home/dave/perl5/perlbrew/perls/current/bin:/usr/bin:/bin:/usr/local/bin:

Попробуйте это пошаговое руководство, уделяя пристальное внимание шагам 7 и 8 (и, возможно, 9).

Другие вопросы по тегам