Почему модуль не установлен `CPANM` не будет распознан?

StackOverflow https://stackoverflow.com/questions/3753723

  •  04-10-2019
  •  | 
  •  

Вопрос

Я установил 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).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top