Как я могу установить XML :: DOM в свой perl, созданный из исходного кода?

#perl

#perl

Вопрос:

Я загрузил исходный код в Perl и скомпилировал / установил в общий каталог для моей команды. По умолчанию Perl не включает XML :: DOM, и мне нужно добавить его в установку. Как мне это сделать?

Я попробовал cpan, и по умолчанию он устанавливается в ~/perl5. Я попробовал cpanm next (cpanm -l $install_path XML::DOM), но perl по-прежнему не может найти его в @INC. Я использую perl 5.32.0.

Комментарии:

1. Использовать perlbrew для управления установкой perl? Он настраивает пути и т. Д., Чтобы модули устанавливались в нужном месте для текущей выбранной версии.

2. Можете ли вы показать свою среду? Что-нибудь с PERL этим? Кроме того, вы можете показать мне свою конфигурацию cpan ( cpan -J ). Кроме того, было бы очень полезно показать фактические команды, которые вы выполняли.

3. Я бы действительно рекомендовал использовать XML :: LibXML вместо XML :: DOM. Это практически тот же API, поддерживает XPath, значительно быстрее и активно поддерживается.

Ответ №1:

У вас есть env var, указывающий установщику модуля установить его в нежелательное место.

Снимите следующие переменные env:

  • PERL_MM_OPT
  • PERL_MB_OPT

Ответ №2:

Не вызывайте cpan или cpanm, вызывайте cpan с помощью вашего perl или проверяйте, какой perl вызывается с помощью вашего инструмента, посмотрев на заголовок.

/path/to/my/perl -S cpan XML::DOM

Комментарии:

1. Не повезло — он все еще устанавливается в ~/perl5. Что странно, так это то, что версии Perl redhat6 и redhat8, похоже, имеют XML:: DOM, несмотря на то, что они построены одинаково. Только в redhat7 его нет.