Каков путь по умолчанию для 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 каталог под вашим домашним каталогом.

Другие вопросы по тегам