Почему модуль не установлен `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
Но это пусто (я понятия не имею, если это что-то значит).
Решение
Что значит 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).