Безопасно ли иметь разные установки Perl на одной машине с общим cpan_home? - PullRequest
2 голосов
/ 14 февраля 2012

У меня есть устаревший системный perl 5.8.8 на компьютере с Linux и я установил 5.12.4 из ActiveState. Оба perl cpan_home это ~root/.cpan. Я собирался изменить новый Perl cpan_home, но потом понял, что не знаю , действительно ли мне нужно это делать, или это просто приведет к загрузке нескольких копий модулей в разные каталоги когда на самом деле они могут быть разделены.

Так они могут? Это безопасно? Что касается компиляции? Или мне нужно перейти на отдельные cpan_home каталоги?

Обратите внимание, что сначала я попробовал perlbrew , но это не удалось с Can't load '../lib/auto/IO/IO.so' for module IO: ../lib/auto/IO/IO.so: wrong ELF class: ELFCLASS64 at ../lib/XSLoader.pm line 70. Так что вместо того, чтобы заняться проблемой, я выбрал ActivePerl, который легко устанавливается.

1 Ответ

5 голосов
/ 14 февраля 2012

В моей системе дюжина сборок Perl, и все они используют ~/.cpan. У меня никогда не было проблем, но я не могу сказать, что это безопасно. Это зависит от настроек в нем. В частности,

  • build_dir_reuse должно (вероятно) быть нулем.
  • makepl_arg не должен содержать INSTALL_BASE.
  • mbuildpl_arg не должен содержать --install_base.

«Установить базу» переопределяет, где установлены модули. Если вы начнете устанавливать модули для всех своих сборок в одном месте, у вас будут проблемы из-за несовместимости версий, выпусков и сборок Perl.

Если вы хотите поделиться .cpan и иметь локальный каталог установки, вы, вероятно, можете избежать использования PREFIX=/home/username/perl5 LIB=/home/username/perl5/lib вместо INSTALL_BASE=/home/username/perl5. Он использует более умную структуру каталогов.

Кстати, local :: lib вызывает использование «install base», поэтому у вас возникнут проблемы, если вы используете local :: lib с несколькими установками Perl.

...