Почему модуль, установленный `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).