Как добавить пользовательские дистрибутивы модулей в мое локальное зеркало CPAN? - PullRequest
3 голосов
/ 24 февраля 2011

Я готовлюсь к настройке полного зеркала CPAN для внутреннего использования в моей компании. Однако у нас есть несколько внутренних дистрибутивов на основе Module::Build, которые я хотел бы сделать доступными для людей из этого зеркала. Эти дистрибутивы должны быть доступны ТОЛЬКО из нашего зеркала; они только внутренние библиотеки. По сути, как только люди настроят свой конфигурационный файл CPAN для загрузки зеркала «cpan.mycompany.com», я бы хотел, чтобы они могли делать

cpan install MyCompany::Bundle
cpan install MyCompany::Other::Module

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

После первоначального вопроса я смог предложить некоторые другие возможности.

Есть CPAN :: Inject , но, похоже, я не могу использовать его для получения синтаксиса cpan install My::Module.

Тогда есть MyCPAN :: App :: DPAN , который также выглядит интересно и почти выглядит как то, что мне нужно. У кого-нибудь есть опыт работы с этим инструментом?

Еще один, с которым я только что столкнулся, был CPAN :: Site . Похоже, что это также позволяет настроить пользовательский дистрибутив CPAN. Есть мысли по поводу этого инструмента?

Ответы [ 4 ]

5 голосов
/ 24 февраля 2011

Если вы используете CPAN :: Mini для создания своего зеркала, тогда вы используете CPAN :: Mini :: Inject , чтобы добавить в него свои собственные модули.

1 голос
/ 01 июня 2011

Чтобы сделать это с полным зеркалом CPAN, CPAN :: Site прекрасно это охватывает.Он позволяет вам создать зеркало, а затем добавить в него ваши собственные библиотеки, в комплекте с инструментами, которые помогут вам настроить и поддерживать его в актуальном состоянии.

0 голосов
/ 15 ноября 2013

Если вы все еще заинтересованы в MyCPAN :: App :: DPAN, я только что опубликовал, как я использую его для создания мини-CPAN-подобной структуры каталогов, в одном из ответов на этот вопрос: *

Внутренний CPAN - какой модуль

(Я не знаю, можно ли ссылаться на мой собственный ответ здесь. Дайте мне знать, если это не так.)

0 голосов
/ 18 июля 2011

Я хотел бы поддержать предложение для CPAN :: Site - автор отзывчив и с радостью внесет исправления, если вы попросите или подадите отчет об ошибке на CPAN RT .

Я недавно использовал его для создания «микро-cpan», содержащего только то, что нужно конкретному приложению и ничего больше, наряду с cpanminus , чтобы сделать установку в любой среде максимально простой,Однако, не спрашивайте меня о моем решении - miyagawa ++ был на YAPC :: NA в этом году и продемонстрировал " Картон ", который делает все этои даже больше, способ лучше, чем мои хакерские вещи.

CPAN :: Mini :: Inject , возможно, слишком «низкоуровневый», поскольку требует, чтобыВы задаете много информации о каждом dist заранее, прежде чем вводить в минипанель - я чувствую, что почти все это должно быть автоматически обнаружено путем анализа dist, например, с помощью CPAN :: ParseDistribution .

MyCPAN :: App :: DPAN на самом деле довольно крутой, но имеет немного кривой обучения и, возможно, не является подходящим инструментом для работы.Я также обнаружил, что он имеет тенденцию задыхаться на некоторых плохо сформированных дисках и обнаруживать, что включает в себя обход журналов (насколько я могу судить - возможно, есть лучший способ сделать это). Однако я настоятельно рекомендую проверитьэто из.

...