Разные архитектуры в одинаковых или разных деревьях каталогов? - PullRequest
5 голосов
/ 23 июля 2010

На рабочем месте мы поддерживаем набор модулей Perl в центральном месте для легкого включения через PERL5LIB. Поскольку предстоит переустановка, и нам необходимо предоставить модули для 32- и 64-разрядной архитектуры, мы задаемся вопросом, лучше ли установить их в одно и то же дерево каталогов, опираясь на подкаталоги $ archname или оставить две архитектуры полностью отделить и продублировать каждый модуль.

Я не очень успешно исследовал внутреннюю работу процесса поиска модуля Perl, включающего $ archname, возможно, кто-то может указать мне правильное направление.

По вашему опыту, каковы плюсы и минусы двух подходов?

Ответы [ 2 ]

3 голосов
/ 23 июля 2010

С perldoc lib :

При использовании use lib LIST;

Для каждого каталога в LIST (здесь он называется $dir) модуль lib также проверяетчтобы увидеть, существует ли каталог с именем $dir/$archname/auto.В этом случае предполагается, что каталог $dir/$archname является каталогом, соответствующим конкретной архитектуре, и добавляется в @INC перед $dir.

lib.pm также проверяет, существуют ли каталоги с именами $dir/$version и $dir/$version/$archname и добавляет эти каталоги в @ INC.

ИМХО, это более идиоматично - и, смею сказатьаккуратнее - использовать подкаталоги для каждой архитектуры, как это делают стандартные библиотеки Perl.

Однако ночью будет проще управлять деревом всей архитектуры ваших собственных библиотек, хотя и не с большим отрывомкак только вы создадите несколько основных инструментов / скриптов для этого.

1 голос
/ 23 июля 2010

Сборка модулей отдельно для каждой системы, чтобы вы могли получать только необходимые файлы.Или используйте систему упаковки, которая различает архитектуры.Не пытайтесь предоставлять файлы для всех архитектур всем системам.

...