2015-07-09 3 views
8

С помощью pip вы можете создать файл требований, чтобы указать, какие библиотеки устанавливать. Существует ли эквивалент для модулей perl с использованием CPAN?Файл требований CPAN

Я столкнулся с ExtUtils :: MakeMaker, но это похоже, что make-файл предназначен для каждого модуля.

Я думаю, чтобы попытаться дать лучшее представление о том, что я прошу, если есть способ сделать что-то вроде

cpan install -r requirements.txt 

, а затем указать, какие модули для установки в том, что требования к файлу.

Заранее благодарен!

+0

Вы спрашиваете, как указать предпосылки для модуля, который вы написали, чтобы другие могли его установить? Или вы просто хотите установить кучу несвязанных модулей в свою собственную систему, которые перечислены в файле? – ThisSuitIsBlackNot

ответ

4

Я думаю, что Картон - это то, что вы ищете.

Чтобы начать использовать Картон, установите его. Затем создайте cpanfile с зависимостями:

require 'Test::Most'; 
require 'Math::BaseConvert'; 

С помощью этого файла в месте, запустите

carton install 

Это позволит установить эти модули, если это необходимо, и записать файл с именем cpanfile.snapshot с информацией о зависимости.

Также см: Brief Notes on Managing Perl Dependencies with Carton

PS: Проверьте Stratopan.

+0

Спасибо, картон и cpanfile были именно то, что я искал – DoolAy

8

Когда вы устанавливаете модули из CPAN, каждый модуль определяет его зависимости в Makefile.PL (или Build.PL), и оболочка CPAN решает эти рекурсивные решения при установке.

Если вы хотите указать зависимости для приложения (а не модуль CPAN), вы можете создать файл с именем cpanfile в этом формате:

requires 'JSON'; 
requires 'Template'; 
requires 'DateTime'; 
requires 'DBIx::Class'; 

Затем вы можете установить эти зависимости с помощью одной команды:

cpanm --installdeps . 

команда cpanm происходит от App::cpanminus распределения и является альтернативным инструментом для установки модулей из CPAN.

Для получения дополнительной информации см. cpanfile docs.

+0

сэкономил массу часов. – feng63600

Смежные вопросы