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

StackOverflow https://stackoverflow.com/questions/260593

  •  06-07-2019
  •  | 
  •  

Вопрос

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

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

Какой самый простой / лучший способ получить и установить (множество) специфичных для версии модулей Perl.

Это было полезно?

Решение

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

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

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

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

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

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

Другие советы

bdfoy предлагает лучшее крупномасштабное решение, но если вы просто хотите установить несколько модулей, вы можете попросить оболочку CPAN установить конкретный дистрибутив, указав путь к тарболу (относительно вершины дерева 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::Module@1.23

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

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

Carton стоит упомянуть здесь. App::cpanminus - относительно новый инструмент в том же стиле, что и App::cpanoutdated, perlbrew, Pinto, и т. д. al. Автор (Миягава) называет это " alpha " качество, но даже в своем нынешнем состоянии коробка помогает упростить обслуживание нескольких сред с настроенными версиями на разных машинах.

<=> также является еще одним недавним инструментом, относящимся к некоторым ответам (фактически один из респондентов является участником) ,

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

Отказ от ответственности: я работаю со Stratopan.

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top