Существует ли «официальный» документ спецификации CPAN?

Существует ли официальный и/или фактический документ, подробно рассказывающий о том, как работает CPAN, достаточно подробно, чтобы любой мог использовать его для восстановления CPAN с нуля, не полагаясь на устную традицию и слухи? Что-то, документирующее структуру каталогов, файлы, которые должны быть в дистрибутиве, как на самом деле работают номера версий, кто может что загружать и что именно указано на веб-сайте search.CPAN.org и т. д.?


person user1481    schedule 21.01.2013    source источник
comment
Возможно, это будет полезно?   -  person hd1    schedule 21.01.2013
comment
search.cpan.org не является CPAN. Вы спрашиваете о первом или втором?   -  person ikegami    schedule 21.01.2013
comment
@ hd1 спасибо, но я искал больше деталей, чем просто настроить зеркало.   -  person user1481    schedule 21.01.2013
comment
@ikegami Я имею в виду последнее, а не какой-либо конкретный веб-интерфейс ... хотя мне было бы интересно узнать, как search.cpan.org узнает, например, является ли что-то выпуском для разработчиков.   -  person user1481    schedule 21.01.2013
comment
В документе, который я упомянул в своем ответе, упоминаются dev rels.   -  person ikegami    schedule 21.01.2013


Ответы (3)


CPAN — это не что иное, как зеркальный репозиторий файлов. Файлы загружаются с использованием PAUSE. О PAUSE отвечает на большинство, если не на все ваши вопросы.

Вы также упомянули search.cpan.org, но это не часть CPAN. Это всего лишь один из многих инструментов, которые получают доступ к CPAN. Веб-сайт https://metacpan.org/ и инструменты командной строки cpan и cpanm являются другими.

person ikegami    schedule 21.01.2013

Ваш вопрос затрагивает много разных вещей...

«А» CPAN — это просто каталог с определенной структурой и несколькими специальными файлами. Структура и форматы файлов формально не определены, но достаточно просты. Есть несколько модулей (в основном в пространстве имен CPAN::), которые могут создавать эти файлы для вас. Самый важный файл — это modules/02packages.details.txt.gz. файл (также известный как «индекс»), который сопоставляет имена модулей с путями архивов дистрибутива, которые их содержат. Предполагается, что пути в индексе относятся к каталогу authors/id. И это почти все. Другие файлы, такие как authors/01mailrc.txt.gz и modules/03modlist.data.gz должен присутствовать и иметь «действительный» формат, но не требует никаких реальные данные в них - они не важны для основной работы установщиков модулей.

«The» CPAN — это центральная CPAN, где сообщество делится своими дистрибутивами. Авторы могут поместить свою работу в "тот" CPAN через PAUSE, который выполняет работу по анализу распределения и созданию индекса. . На странице О описано, как работает PAUSE на высоком уровне. CPAN на самом деле зеркалируется в несколько разных мест, так что вы можете указать установщику на любое из них. Вы также можете легко создать собственное зеркало. search.cpan.org и metacpan — это сервисы поиска и просмотра, созданные на базе CPAN. Поэтому, если вы загрузите дистрибутив на PAUSE, он (в конце концов) появится и на этих сайтах.

Однако то, как вы на самом деле делаете дистрибутив, немного сложнее. Опять же, не существует формального определения того, как должен выглядеть дистрибутив. ПАУЗА на самом деле примет что угодно и будет очень стараться понять это. Но почти все авторы используют такие инструменты, как Module::Build или ExtUtils::MakeMaker, чтобы выполнить большую часть работы. Эти инструменты предписывают соглашения по организации вашего кода и могут генерировать файлы, которые помогут PAUSE и другим системам понять ваш дистрибутив. На еще более высоком уровне такие инструменты, как Module::Starter и Dist::Zilla создаст для вас еще больше инфраструктуры. Вам не обязательно использовать ни один из них, но вы должны использовать хотя бы один из них.

Если ваша цель состоит в том, чтобы создать свой собственный CPAN с выбранными вами дистрибутивами (возможно, ваши собственные проприетарные модули плюс некоторые модули с открытым исходным кодом из "этого" CPAN), тогда Pinto может быть тем, что вы ищете. Pinto создаст локальный репозиторий, подобный CPAN, с любыми дистрибутивами, которые вы хотите. Пинто знает, как работать с зависимостями и извлекать их из вышестоящего репозитория (обычно "CPAN"). В Pinto есть инструменты, которые помогут вам управлять изменениями по мере развития ваших зависимостей. И все это совместимо с существующими установщиками модулей Perl, поэтому все, что вам нужно сделать, это «указать» их в вашем локальном репозитории.

person Jeffrey Ryan Thalhammer    schedule 07.02.2013

Существуют различные проекты, такие как MyCPAN, Pinto и StratoPAN, которые создают CPAN-подобные репозитории с индексными файлами, которые предоставляет PAUSE и которые ожидают клиенты. Что вы пытаетесь достичь?

person brian d foy    schedule 06.02.2013