2016-12-01 12 views
3

Я установил модуль под cpanm, по-видимому, неправильно. Он виден и доступен при работе под системным perl, но не под perlbrew. Однако perlbrews cpanm заявляет, что модуль успешно установлен. Лучшие шаги?perlbrew perl cpanm faulty

/Users/john/perl5/perlbrew/perls/perl-5.18.2/bin/perl 
/Users/john/perl5/bin/cpanm 
#!/usr/bin/perl 
MM: INSTALL_BASE=/Users/john/perl5 
MB: --install_base "/Users/john/perl5" 

Note: .pl file contains following 
#!/usr/bin/env perl 

После perlbrew переключатель ...

declare -x PERL5LIB="/Users/john/perl5/lib/perl5" 
declare -x PERLBREW_BASHRC_VERSION="0.76" 
declare -x PERLBREW_HOME="/Users/john/.perlbrew" 
declare -x PERLBREW_MANPATH="/Users/john/perl5/perlbrew/perls/perl-5.18.2/man" 
declare -x PERLBREW_PATH="/Users/john/perl5/perlbrew/bin:/Users/john/perl5/perlbrew/perls/perl-5.18.2/bin" 
declare -x PERLBREW_PERL="perl-5.18.2" 
declare -x PERLBREW_ROOT="/Users/john/perl5/perlbrew" 
declare -x PERLBREW_VERSION="0.76" 
declare -x PERL_LOCAL_LIB_ROOT="/Users/john/perl5" 
declare -x PERL_MB_OPT="--install_base \"/Users/john/perl5\"" 
declare -x PERL_MM_OPT="INSTALL_BASE=/Users/john/perl5" 

Link to sybase install with hombrew

+2

Просьба указать вывод 'which perl; который cpanm; head -n 1 "$ (который cpanm)"; printf 'MM:% s \ n' "$ PERL_MM_OPT"; printf 'MB:% s \ n' "$ PERL_MB_OPT" ' – ikegami

+0

В perlbrew попробуйте следующее. '$ cpanm --interactive -v App :: cpanoutdated',' $ cpan-outdated', '$ cpanm --interactive -v App :: CPAN :: Fresh'. Затем выполните 'cpanm '. –

+0

Проверьте, правильно ли разрешены только что установленные файлы – KeepCalmAndCarryOn

ответ

2

cpanm не устанавливает каких-либо модулей. Он просто запускает установщик, упакованный с дистрибутивами, которые вы хотите установить. С помощью PERL_MM_OPT и PERL_MB_OPT env vars вы проинструктируете этих установщиков установить модули в неправильном месте. Избавься от них.

+0

, но не будет устанавливать место установки, в зависимости от того, какой cpanm используется. Я сделал предложение. Использование perl под perlbrew, Не удается найти DBD/Sybase.pm. Используя систему perl, все в порядке. /Users/john/perl5/lib/perl5/darwin-thread-multi-2level/DBD/Sybase.pm. Хотите сделать определенную cpanm следующую установку для perlbrew copy – paulj

+0

PERL5LIB = "/ Users/john/perl5/lib/perl5" Это проблема. Как я могу переместить файлы здесь в ~/perl5/perlbrew/perls/perl-5.18.2/lib/5.18.2/ – paulj

+0

Большое спасибо за информацию. Не знаю, как я дошел до этого. – paulj

0

У меня была аналогичная проблема и я не мог понять, как сделать cpanm установить модули для предполагаемого Perl. Я установил perlbrew через:

perlbrew --switch --notest install perl-stable 

Я думал, что --switch бы направить свое использование на новый Perl, и я мог видеть новый Perl был там через:

perlbrew exec perl -v | grep 'This is' 

Но установка модулей с cpanm было не работает (модули не будут найдены), когда я запускаю скрипты через:

perlbrew exec perl myscript.pl 

Это which-version-of-perl post заставило меня считать, что т aybe --switch не имел эффекта, который я хотел. Выполнение следующего разрешено: cpanm, чтобы начать установку на предполагаемый Perl:

perlbrew switch perl-5.26.1