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

Но это не указывает, какие переменные среды являются значимыми.


person Randall    schedule 27.01.2017    source источник


Ответы (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 в вашем домашнем каталоге.

person polettix    schedule 27.01.2017