Каков путь по умолчанию для cpanm для установки модулей Perl?
Прежде чем я использую cpanm
Чтобы установить некоторые модули Perl в "новой" (для меня) системе, я хотел бы знать, где они будут установлены по умолчанию.
Я не вижу никакого варианта пробного запуска, на который я надеялся.
perl -V
включает эту информацию%ENV и @INC:
%ENV:
PERL5LIB="/home/randall/perl5/lib/perl5"
PERL_HOMEDIR="1"
PERL_LOCAL_LIB_ROOT="/home/randall/perl5"
PERL_MB_OPT="--install_base /home/randall/perl5"
PERL_MM_OPT="INSTALL_BASE=/home/randall/perl5"
@INC:
/home/randall/perl5/lib/perl5
/usr/local/lib64/perl5
/usr/local/share/perl5
/usr/lib64/perl5/vendor_perl
/usr/share/perl5/vendor_perl
/usr/lib64/perl5
/usr/share/perl5
Это определяет поведение, или есть другие соображения? В частности, документация для cpanm включает в себя:
-l, --local-lib Sets the local::lib compatible path to install modules to. You don't need to set this if you already configure the shell environment variables using local::lib, but this can be used to override that as well.
Но это не указывает, какие переменные среды являются значимыми.
1 ответ
Это может быть полезным: https://metacpan.org/pod/App::cpanminus#Where-does-this-install-modules-to?-Do-I-need-root-access?
Где это установить модули? Нужен ли мне root-доступ?
Он устанавливается там, где настроены ExtUtils::MakeMaker и Module::Build (через
PERL_MM_OPT
а такжеPERL_MB_OPT
).По умолчанию он устанавливается в каталог site_perl, который принадлежит вашему perl. Вы можете увидеть места для этого, запустив
perl -V
и это будет, вероятно, что-то под/opt/local/perl/...
если вы используете системный perl, или в вашем домашнем каталоге, если вы создали perl самостоятельно, используя perlbrew или plenv.Если вы уже настроили local:: lib в своей оболочке, cpanm учитывает, что настройки и модули будут установлены в вашем локальном каталоге perl5.
Во время загрузки cpanminus проверяет, настроили ли вы local:: lib или имеете разрешение на установку модулей в каталог site_perl. Если ни то, ни другое, то есть вы используете системный perl и не запускаете cpanm от имени пользователя root, он автоматически устанавливает путь установки, совместимый с local:: lib, в
perl5
каталог под вашим домашним каталогом.