2016-01-08 6 views
3

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

Поскольку я разрабатываю прототип perl, я продолжаю устанавливать новые модули CPAN, которые я хочу использовать для прототипа для своего локального perl. Я хочу убедиться, что когда эта программа будет развернута, все эти модули CPAN, которые я использую, также установлены на коробке.

Я не хочу отслеживать каждый новый модуль CPAN, который я устанавливаю во время разработки, и вручную устанавливать каждый на производстве, я хочу запустить команду и загрузить все соответствующие модули. В java-мире я бы использовал нечто вроде Maven, чтобы перечислять эти зависимости и доверять maven для обработки выборки и обеспечения доступности моих библиотек. Имеет ли Perl эквивалент?

Я бы хотел ожидать, что я смогу указать cpan на свою программу, и это может сделать вывод о том, какие модули необходимы для базового статического анализа и установить их на лету, но я не нашел программу или синтаксис для этого. может ли кто-нибудь указать мне на

+0

'cpan' будет выбирать и устанавливать зависимости при установке вашего [пакета] (http://search.cpan.org/perldoc?ExtUtils::MakeMaker), хотя вам нужно будет указать непосредственные зависимости. – ikegami

+1

Статический анализ не может сделать это из-за 'eval', между прочим. Вы можете приблизиться к некоторым инструментам, упомянутым в [Как найти зависимости модуля от моего сценария Perl?] (Http://stackoverflow.com/q/358891/176646), но если вы хотите убедиться, что зависимости установленные при установке кода, вам необходимо перечислить их в Makefile.PL или Build.PL для вашего распространения. – ThisSuitIsBlackNot

+0

Не совсем обман, но вы можете найти ответы на [этот вопрос] (http://stackoverflow.com/questions/7664829/can-a-perl-script-install-its-own-cpan-dependencies). –

ответ

1

Самый простой способ сделать это - загрузить Webmin, который будет сообщать как собственные модули cpan, так и модули, загруженные через yum или apt-get. Развертывание установки - это еще одно обсуждение.

+0

Благодарим вас за это предложение. Я немного повернусь сюда, я очень ценю ваш ответ, но он не полностью отвечает на вопрос, так как вы признались, что пропустили развертывание. В то же время я чувствую, что комментарии выше заканчивают отвечать на вопрос, но не могут выбрать их в качестве ответа ... Если вы хотите изменить свой ответ, чтобы хотя бы кратко коснуться вариантов развертывания, уже упомянутых в комментариях выше, я бы хотел чтобы дать вам ответ, хотя и, наконец, закрыть это :) Тем временем я собираюсь пойти на пик в webmin :) – dsollen

+0

Как вы развертываете, зависит от вашей цели, и это слишком сложно, чтобы отвечать в целом. Вам нужно будет создать скрипт, который обнаруживает среду и тесты для модулей, пытаясь установить их по одному. Это будет отличаться для Centos и Ubuntu. Вы не хотите загружать модули cpan над модулем пакета, но вам нужно будет использовать cpan для загрузки модулей, у которых нет пакета поставщика. –