Быстрый ответ заключается в том, что вы хотите использовать CPAN :: Mini для создания локального зеркала всего, что является текущим на CPAN, а затем CPAN :: Mini :: Inject, чтобы добавить в него собственные дистрибутивы.
Длинный ответ заключается в том, что это помогает понять, как создается зеркало CPAN.Вообще говоря, это просто каталог, который содержит две подкаталоги.
Каталог 'modules' в свою очередь содержит два файла, 03modlist.data.gz, содержимое которых игнорируется современными клиентами CPAN, но существует устаревший кодпредполагается, что этот файл существует, поэтому просто скопируйте его из существующего зеркала.Другой - это 02packages.details.txt.gz, который я опишу позже.
В каталоге «авторы» содержится файл «01mailrc.txt.gz», который является еще одним пережитком прошлого, содержимое которого можно игнорировать.так что просто скопируйте его из другого зеркала, и он содержит каталог 'id'.Это, в свою очередь, содержит подкаталоги и дистрибутивы, имена которых следуют шаблону.Например, мой идентификатор PAUSE - это DCANTRELL, а один из моих дистрибутивов - XML-Tiny-2.06.tar.gz, так что файл находится по адресу ... / авторы / id / D / DC / DCANTRELL / XML-Tiny-2.06.tar.gz.
Файл 02packages.details.txt.gz - это индекс, который отображает имена модулей в дистрибутивы, и этот должен быть актуальным, чтобы ваше зеркало работало должным образом.Он состоит из нескольких строк заголовка, которые должны присутствовать и быть правильными, за которыми следует пустая строка, за которой следует одна строка для каждого модуля.Эти строки представляют собой три поля, разделенные пробелами:
- имя модуля
- версия модуля
- имя файла распределения
например
XML::Tiny 2.06 D/DC/DCANTRELL/XML-Tiny-2.06.tar.gz
(вы также можете увидеть .tgz, .zip и несколько других)
Дистрибутив может отображаться в несколько строк, по одному для каждого модуля, который он содержит.например,
XML::Tiny::DOM 1.1 D/DC/DCANTRELL/XML-Tiny-DOM-1.1.tar.gz
XML::Tiny::DOM::Element 1.1 D/DC/DCANTRELL/XML-Tiny-DOM-1.1.tar.gz
В обычном зеркале CPAN может быть несколько версий дистрибутива и несколько версий модуля - например, текущая версия и несколько более старых или текущая стабильная иразработчик один.Индексный файл содержит самую последнюю стабильную версию.Вы можете сообщить dev версиям дистрибутивов, потому что они имеют подчеркивание в своей версии или содержат строку '-TRIAL'.
Таким образом, зная все это, вы можете создать CPAN-подобный файл, содержащий только ваш код.Но использование CPAN :: Mini и CPAN :: Mini :: Inject для добавления ваших материалов в «настоящий» CPAN - это меньше работы.
После того, как вы создали свой CPAN-подобный, вы можете либо выставитьэто по HTTP и доступ к нему с помощью любого клиента, как обычно, или вы можете просто включить его в файловую систему и настроить клиент CPAN для доступа к нему, используя файл: /// URL.