Как установить определенную версию набора модhive Perl?

Мне поручено реплицировать производственную среду для создания множества сред тестирования / сита.

Одной из вещей, которые мне нужно сделать, является создание Perl со всеми модулями, которые были установлены (включая внутренние и внешние модули) на протяжении многих лет. Я мог бы просто использовать автозагрузку CPAN.pm, но это приведет к тому, что тестовая среда будет иметь гораздо более новые версии внешних модhive, которые имеет производство.

Каков самый простой / лучший способ получить и установить (многие) версии Perl-модhive.

Сделайте свое собственное зеркало CPAN именно тем, что вы хотите. Stratopan.com , сервис и Pinto , инструменты, которые построены на вершине, могут помочь вам в этом.

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

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

Такие инструменты, как CPAN :: Mini :: Inject, могут помочь вам настроить собственный CPAN. Ознакомьтесь с моими разговорами о Slideshare для основных примеров и некоторыми моими видео на Vimeo для некоторых демонстраций. Посмотрите на все, что имеет «CPAN» или «BackPAN» в названии. Я думаю, что у меня может быть кое-что об этом в The Perl Review , или должно быть в следующем выпуске. 🙂

В последнее время я работал над программой под названием dpan (для DarkPAN), которая может просматривать произвольные каталоги, находить в них дистрибутивы Perl и создавать нужные вам строковые и индексные файлы. Вы запускаете dpan, вы получаете URL-адрес, чтобы указывать клиенту CPAN, и вы уходите. Это часть моего проекта MyCPAN-Indexer, который находится в Github . Это не совсем готово к бесконтрольному общественному использованию, потому что я в основном работаю с корпоративными клиентами, чтобы настроить их настройку. Если вы заинтересованы в этом, не стесняйтесь задавать мне вопросы.

Кроме того, я недавно выпустил CPAN :: PackageDetails, который поможет вам создать правильный индексный файл. Он все еще немного молод, но опять же, если вам нужно что-то особенное, просто спросите.

bdfoy имеет лучшее крупномасштабное решение, но если вы просто хотите установить несколько модhive, вы можете попросить оболочку CPAN установить конкретный дистрибутив, указав путь к tarball (относительно вершины дерева CPAN).

cpan> install MSCHWERN/Test-Simple-0.62.tar.gz 

Бросьте URL-адрес в BackPAN в свой список URL-адресов, и вы можете установить любую более старую версию.

 cpan> o conf urllist push http://backpan.perl.org/ 

Это в FAQ CPAN.pm в разделе «как мне установить« РАЗРЕШЕНИЕ РАЗРЕШЕНИЯ »модуля?»

 cpan install App::cpanminus cpanm Your::[email protected] 

(Carton, как указано в других ответах, использует cpanm внизу для разрешения явных требований к версии.)

[Это почти пять лет, и это хорошо спрошенный и хорошо ответивший вопрос, который имел много мнений. Поскольку эта страница все равно должна появляться в результатах поиска Google, обновление не может повредить.]

Carton стоит упомянуть здесь. Carton – сравнительно недавний инструмент в том же стиле, что и App::cpanminus , App::cpanoutdated , perlbrew , et. и др. Автор (Miyagawa) называет это «альфа» качеством, но даже в его нынешней картонной коробке помогает упростить обслуживание нескольких сред модhive, настроенных по версии, на разных машинах.

Pinto – еще один недавний инструмент, имеющий отношение к некоторым ответам (на самом деле один из респондентов является вкладчиком).

Stratopan.com – еще одна альтернатива. Stratopan предоставляет частные CPAN в облаке. Вы можете заполнить repository Stratopan конкретными версиями модhive (и их зависимостями), а затем установить их, используя стандартную цепочку инструментов Perl. Репозиторий изменяется только тогда, когда вы решите его изменить, поэтому вы всегда получите версии модhive, которые вы хотите.

Отказ от ответственности: я управляю Стратопаном.

Кажется, что создание cpanfile котором перечислены все ваши модули и желаемые версии (с использованием синтаксиса == чтобы заблокировать его до определенной версии), также может послужить здесь. Это означало бы использование Carton или cpanm для установки модhive.

Для этого было бы полезно быстро / легко настроить файл, чтобы протестировать обновление определенных модhive в среде разработчика или промежуточной среды – то, что не позволяло бы вам делать собственное зеркало CPAN (без создания нескольких зеркал).

Interesting Posts
Давайте будем гением компьютера.