~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 2474CE449FDDFC5B6ABEC0F57A80DBA6__1672275420 ✰
Заголовок документа оригинал.:
✰ CPAN - Wikipedia ✰
Заголовок документа перевод.:
✰ КПАН — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/CPAN ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/24/a6/2474ce449fddfc5b6abec0f57a80dba6.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/24/a6/2474ce449fddfc5b6abec0f57a80dba6__translat.html ✰
Дата и время сохранения документа:
✰ 21.06.2024 12:58:47 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 29 December 2022, at 03:57 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

КПАН — Википедия Jump to content

КПАН

Из Википедии, бесплатной энциклопедии
Логотип CPAN

Comprehensive Perl Archive Network ( CPAN ) — это хранилище более 250 000 программных модулей и сопроводительной документации для 39 000 дистрибутивов, написанных на Perl языке программирования более чем 12 000 участников. [1] CPAN может обозначать либо сеть архивов, либо программу Perl, которая действует как интерфейс к сети и как автоматический установщик программного обеспечения (что-то вроде менеджера пакетов ). Большая часть программного обеспечения на CPAN является бесплатным и открытым исходным кодом . [2]

История [ править ]

CPAN был задуман в 1993 году и действует в Интернете с октября 1995 года. [3] Он основан на модели CTAN и возник как место для унификации структуры разрозненных архивов Perl. [4]

Роль [ править ]

Как и многие языки программирования , Perl имеет механизмы использования внешних библиотек кода, благодаря чему один файл содержит общие процедуры, используемые несколькими программами. Perl вызывает эти модули . Модули Perl обычно устанавливаются в один из нескольких каталогов к которым , пути помещаются в интерпретатор Perl при его первой компиляции ; в Unix-подобных операционных системах общие пути включают /usr/lib/perl5 , /usr/local/lib/perl5 и несколько их подкаталогов.

Perl поставляется с небольшим набором основных модулей . Некоторые из них выполняют задачи начальной загрузки, например ExtUtils::MakeMaker, [5] который используется для создания файлов Makefile для сборки и установки других модулей расширения; другие, такие как List::Util, [6] просто обычно используются.

Основная цель CPAN — помочь программистам найти модули и программы, не включенные в стандартный дистрибутив Perl. Его структура децентрализована. Авторы поддерживают и совершенствуют собственные модули. Разветвление и создание конкурирующих модулей для одной и той же задачи или цели являются обычным явлением. Существует сторонняя система отслеживания ошибок, которая автоматически настраивается для любого загруженного дистрибутива, но авторы могут выбрать другую систему отслеживания ошибок, например GitHub . Точно так же, хотя GitHub является популярным местом для хранения исходного кода для дистрибутивов, он может храниться где угодно, по желанию автора, или вообще не быть общедоступным. Специалисты по сопровождению могут предоставлять разрешения другим на поддержку или использование своих модулей, а администраторы могут предоставлять разрешения тем, кто желает взять на себя заброшенные модули. Предыдущие версии обновленных дистрибутивов сохраняются в CPAN до тех пор, пока не будут удалены загрузчиком, а вторичная зеркальная сеть под названием BackPAN сохраняет дистрибутивы, даже если они были удалены из CPAN. [7] Кроме того, полная история CPAN и всех его модулей доступна в виде проекта GitPAN. [8] позволяет легко просмотреть полную историю всех модулей и упрощает обслуживание вилок. CPAN также используется для распространения новых версий Perl, а также связанных с ним проектов, таких как Parrot и Raku .

Структура [ править ]

Файлы в CPAN называются дистрибутивами . Дистрибутив может состоять из одного или нескольких модулей, файлов документации или программ, упакованных в общий формат архивирования, например, сжатый tar- архив или ZIP- файл. Дистрибутивы часто содержат сценарии установки (обычно называемые Makefile.PL или Build.PL ) и тестовые сценарии, которые можно запустить, чтобы убедиться, что содержимое дистрибутива работает правильно. Новые дистрибутивы загружаются на сервер загрузки авторов Perl или PAUSE (см. раздел Загрузка дистрибутивов с помощью PAUSE ).

В 2003 году дистрибутивы начали включать файлы метаданных, называемые META. yml с указанием названия дистрибутива, версии, зависимостей и другой полезной информации; однако не все дистрибутивы содержат метаданные. Если метаданные отсутствуют в дистрибутиве, программное обеспечение PAUSE попытается проанализировать код дистрибутива в поисках той же информации; это не обязательно очень надежно. В 2010 году была создана версия 2 этой спецификации. [9] будет использоваться через новый файл под названием META. json , с файлом формата YAML, который также часто включается для обратной совместимости .

Учитывая тысячи дистрибутивов, CPAN необходимо структурировать, чтобы он был полезен. Авторы часто размещают свои модули в естественной иерархии имен модулей Perl (например, Apache::DBI или Lingua::EN::Inflect) в соответствии с целью или доменом, хотя это не является обязательным.

Дистрибутивы модулей CPAN обычно имеют имена в форме CGI-Application-3.1 (где ::, используемый в имени модуля, заменен тире, а к имени добавлен номер версии), но это всего лишь соглашение. ; многие известные дистрибутивы нарушают это соглашение, особенно те, которые содержат несколько модулей. Ограничения безопасности не позволяют дистрибутиву когда-либо заменяться идентичным именем файла, поэтому практически все имена дистрибутива включают номер версии .

Компоненты [ править ]

Дистрибьюторская инфраструктура CPAN состоит из всемирной сети, состоящей из более чем 250 зеркал в более чем 60 странах. [10] Каждое полное зеркало содержит около 31 гигабайта данных. [11]

Большинство зеркал обновляются ежечасно, ежедневно или два раза в день с главного сайта CPAN. [12] Некоторые сайты представляют собой основные FTP-серверы, на которых отражается множество другого программного обеспечения, а другие представляют собой просто серверы, принадлежащие компаниям, активно использующим Perl. На каждом континенте, кроме Антарктиды, есть как минимум два зеркала.

Было написано несколько поисковых систем, помогающих программистам Perl разобраться в CPAN. Официальный поиск .cpan .org включает в себя текстовый поиск, доступный для просмотра индекс модулей и извлеченные копии всех дистрибутивов, находящихся в настоящее время на CPAN. 16 мая 2018 года Perl Foundation объявил, что search.cpan.org будет закрыт 29 июня 2018 года (после 19 лет работы) из-за устаревания кодовой базы и нагрузки на обслуживание. Пользователи будут переведены и перенаправлены на стороннюю альтернативу MetaCPAN. [13] [14]

Тестировщики CPAN — это группа добровольцев, которые будут загружать и тестировать дистрибутивы по мере их загрузки в CPAN. Это позволяет авторам тестировать свои модули на многих платформах и средах, к которым в противном случае у них не было бы доступа, что помогает обеспечить переносимость, а также определенный уровень качества. Дым-тестеры отправляют отчеты, которые затем сопоставляются и используются на различных веб-сайтах с презентациями, включая основной сайт отчетов, статистику и зависимости.

Авторы могут загружать новые дистрибутивы в CPAN через сервер загрузки авторов Perl (ПАУЗА). Для этого они должны запросить учетную запись PAUSE.

После регистрации они могут использовать веб-интерфейс паузы.perl.org или интерфейс FTP для загрузки файлов в свой каталог и их удаления. Модули в загрузке будут индексироваться как канонические только в том случае, если имя модуля не использовалось ранее (предоставление разрешения в порядке очереди загрузчику) или если у загрузчика есть разрешение на это имя, и если модуль имеет более высокую версию, чем любая другая. существующая запись. [15] Это можно указать через веб-интерфейс PAUSE.

CPAN.pm, CPANPLUS и cpanminus [ править ]

Существует также основной модуль Perl под названием CPAN; его обычно отличают от самого репозитория именем CPAN.pm. CPAN.pm — это, главным образом, интерактивная оболочка, которую можно использовать для поиска, загрузки и установки дистрибутивов. Интерактивная оболочка под названием cpan также присутствует в ядре Perl и является обычным способом запуска CPAN.pm. После короткого процесса настройки и выбора зеркала он использует инструменты, доступные на компьютере пользователя, для автоматической загрузки, распаковки, компиляции, тестирования и установки модулей. Он также способен обновляться.

Попытка заменить CPAN.pm чем-то более чистым и современным привела к созданию набора модулей CPANPLUS (или CPAN++). CPANPLUS отделяет внутреннюю работу по загрузке, компиляции и установке модулей от интерактивной оболочки, используемой для выдачи команд. Он также поддерживает несколько расширенных функций, таких как проверка криптографической подписи и отчет о результатах тестирования. Наконец, CPANPLUS может удалить дистрибутив. CPANPLUS был добавлен в ядро ​​Perl в версии 5.10.0 и удален из него в версии 5.20.0.

Была разработана меньшая по размеру и более компактная современная альтернатива этим установщикам CPAN под названием cpanminus. cpanminus был разработан так, чтобы занимать гораздо меньше памяти, что часто требуется в средах с ограниченной памятью, и чтобы его можно было использовать как автономный сценарий, так что он может даже устанавливаться самостоятельно, требуя наличия только ожидаемого набора основных модулей Perl. Он также доступен на CPAN как модуль App::cpanminus, который устанавливает cpanm- скрипт. Он не поддерживает постоянную конфигурацию и не полагается на нее, а настраивается только с помощью параметров среды и командной строки. cpanminus не имеет интерактивного компонента оболочки. Он распознает формат cpanfile для указания предварительных требований, что полезно в специальных проектах Perl, которые могут не быть предназначены для установки CPAN. cpanminus также имеет возможность удалять дистрибутивы.

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

Влияние [ править ]

Опытные программисты Perl часто отмечают, что половина мощи Perl находится в CPAN. Его называют убийственным приложением Perl . [16] Это примерно эквивалентно Composer для PHP ; репозиторий PyPI ( Python Package Index) для Python ; RubyGems для Рубина ; CRAN для R ; npm для Node.js ; LuaRocks для Lua ; Maven для Java ; и Hackage для Haskell . Использование CPAN арбитражных пространств имен, режима тестирования и четко определенного стиля документации делает его уникальным.

Учитывая свою важность для сообщества разработчиков Perl, CPAN одновременно формирует и формируется под влиянием культуры Perl . Его «самопровозглашенный главный библиотекарь» Яркко Хиетаниеми часто принимает участие в первоапрельских шутках; 1 апреля 2002 года сайт был временно назван CJAN , где «J» означало «Java». В 2003 году www.cpan.org доменное имя было перенаправлено на Matt's Script Archive , сайт, печально известный в сообществе Perl из-за плохо написанного кода. [17] [18] [19]

Некоторые раздачи на CPAN распространяются в виде шуток. Acme::иерархия зарезервирована для модулей шуток; например, Acme::Don't добавляет don't функция, которая не запускает переданный ей код (чтобы дополнить doвстроенный, что и делает). Даже за пределами Acme::иерархия, некоторые модули по-прежнему пишутся в основном для развлечения; один из примеров Lingua::Romana::Perligata, который можно использовать для написания программ Perl на латинице.

В 2005 году группа разработчиков Perl, которые также интересовались JavaScript, собрались вместе, чтобы создать JSAN — сеть архивов JavaScript. JSAN — это практически прямой порт инфраструктуры CPAN для использования с языком JavaScript, который на протяжении большей части своего существования не имел сплоченного «сообщества».

В 2008 году, после случайной встречи с администратором CPAN Адамом Кеннеди на конференции разработчиков открытого исходного кода, разработчик ядра Linux Расти Рассел создал CCAN, Комплексную сеть архивов C. CCAN — это прямой порт архитектуры CPAN для использования с C. языком

CRAN, Комплексная сеть архивов R, представляет собой набор зеркал, на которых размещаются дистрибутивы языка программирования R , документация и дополнительные расширения. [20]

Ссылки [ править ]

  1. ^ «Главная страница CPAN» . Проверено 27 января 2016 г.
  2. ^ «Как лицензируются Perl и модули CPAN?» . Большинство, хотя и не все, модулей CPAN лицензируются по лицензии GNU General Public License (GPL) или Artistic License...
  3. ^ «Хронология Perl и его культуры» .
  4. ^ «Гроккинг CPAN» (PDF) . Предлагаю сотрудничать для создания единой структуры, очень похожей на проект CTAN, которому удалось создать коллекцию канонических сайтов для TeX.
  5. ^ «ExtUtils::MakeMaker — Создать модуль Makefile — Perldoc Browser» . perldoc.perl.org . Проверено 18 ноября 2020 г. .
  6. ^ «List::Util — выбор подпрограмм списка общих утилит — браузер Perldoc» . perldoc.perl.org . Проверено 18 ноября 2020 г. .
  7. ^ «БэкПАН» . Проверено 20 декабря 2019 г.
  8. ^ «Что такое Гитпан?» . Гитхаб . 2 декабря 2015 года . Проверено 16 ноября 2016 г.
  9. ^ "CPAN::Мета::История" . Проверено 20 декабря 2019 г.
  10. ^ «Зеркальная сеть CPAN» . Проверено 16 ноября 2016 г.
  11. ^ «Как отзеркалить CPAN» . CPAN.org . Проверено 15 ноября 2016 г.
  12. ^ «Состояние и статистика CPAN» . Проверено 9 мая 2010 г.
  13. ^ «Конец эпохи: прощаемся с search.cpan.org» . log.perl.org . Проверено 22 мая 2018 г.
  14. ^ «Прощаемся с search.cpan.org» . perl.com . Проверено 26 июня 2018 г.
  15. ^ «Операционная модель ПАУЗА» . Гитхаб . Проверено 20 декабря 2019 г.
  16. ^ «Re: Убойные приложения в PERL» . Проверено 24 февраля 2013 г.
  17. ^ «Элементы программирования на Perl» . 12 октября 2000 г. Проверено 25 апреля 2013 г.
  18. ^ «Используйте этот formmail.pl для развлечения и, ну, для развлечения» . 7 августа 2001 года . Проверено 25 апреля 2013 г.
  19. ^ «Архив сценариев Мэтта снова наносит удар!» . 4 июля 2001 года . Проверено 25 апреля 2013 г.
  20. ^ «Что такое КРАН?» . Проверено 20 декабря 2019 г.

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 2474CE449FDDFC5B6ABEC0F57A80DBA6__1672275420
URL1:https://en.wikipedia.org/wiki/CPAN
Заголовок, (Title) документа по адресу, URL1:
CPAN - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)