CPAN - CPAN - Wikipedia

CPAN логотипі

The Perl мұрағатының желісі (CPAN) Бұл репозиторий 250 000-нан астам бағдарламалық модульдер және 39000 дистрибуцияға ілеспе құжаттама, жазылған Перл бағдарламалау тілі 12000-нан астам салымшылар.[1] CPAN архивтік желіні немесе желіге интерфейс ретінде және автоматтандырылған бағдарламалық жасақтама орнатушы ретінде жұмыс істейтін Perl бағдарламасын белгілей алады ( пакет менеджері ). CPAN бағдарламалық жасақтамасының көп бөлігі ақысыз және ашық бағдарламалық жасақтама.[2]

Тарих

CPAN 1993 жылы құрылды және 1995 жылдың қазан айынан бастап желіде белсенді болды.[3] Ол негізделеді CTAN моделі және Perl мұрағаттарының құрылымын біріздендіретін орын ретінде басталды.[4]

Рөлі

Көпшілік сияқты бағдарламалау тілдері, Perl-де сыртқы қолдану тетіктері бар кітапханалар код, бір файл жасау бірнеше бағдарламаларда қолданылатын әдеттегі процедуралардан тұрады. Перл бұларды атайды модульдер. Perl модульдері әдетте бірнеше біреуінде орнатылады анықтамалықтар кімдікі жолдар Perl-ге орналастырылған аудармашы ол бірінші болғанда құрастырылған; қосулы Unix тәрізді операциялық жүйелер, жалпы жолдарға жатады / usr / lib / perl5, / usr / local / lib / perl5, және олардың бірнеше каталогтары.

Perl кішкентай жиынтығымен бірге келеді негізгі модульдер. Олардың кейбіреулері жүктеу тапсырмаларын орындайды, мысалы ExtUtils :: MakeMaker,[5] жасау үшін қолданылады Makefiles басқа кеңейту модульдерін құру және орнату үшін; басқалары, мысалы :: List, Util,[6] жай ғана қолданылады.

CPAN-дің негізгі мақсаты - бағдарламашыларға Perl стандартты үлестіріміне кірмеген модульдер мен бағдарламаларды табуға көмектесу. Оның құрылымы орталықтандырылмаған. Авторлар өздерінің модульдерін қолдайды және жетілдіреді. Форкинг, және сол тапсырмаға немесе мақсатқа сай бәсекелес модульдерді құру кең таралған. Жүктелген кез-келген тарату үшін автоматты түрде орнатылатын үшінші тарап қателерін бақылау жүйесі бар, бірақ авторлар басқа қателерді бақылау жүйесін пайдалануды таңдай алады. GitHub. Дәл сол сияқты, GitHub тарату үшін дереккөзді сақтайтын танымал орын болғанымен, ол автордың қалаған жерінде сақталуы немесе мүлде жалпыға қол жетімді болмауы мүмкін. Қызметкерлер басқаларға өздерінің модульдерін ұстауға немесе иемденуге рұқсат бере алады, ал әкімшілер тастап кеткен модульдерді алғысы келетіндерге рұқсат бере алады. Жаңартылған дистрибуцияның алдыңғы нұсқалары жүктеуші жойғанға дейін CPAN-да сақталады, ал BackPAN деп аталатын қайталама айна желісі таратылымдарды CPAN-дан жойылған болса да сақтайды.[7] Сонымен қатар, CPAN және оның барлық модульдерінің толық тарихы GitPAN жобасы ретінде қол жетімді,[8] барлық модульдер үшін толық тарихты оңай көруге және шанышқыларға оңай қызмет көрсетуге мүмкіндік береді. CPAN Perl-дің жаңа нұсқаларын, сондай-ақ байланысты жобаларды тарату үшін қолданылады Тотықұс және Раку.

Құрылым

CPAN-дегі файлдар деп аталады тарату. Тарату бір немесе бірнеше модульдерден, құжаттамалық файлдардан немесе а. Сияқты жалпы мұрағаттау форматына оралған бағдарламалардан тұруы мүмкін gzip шайыр мұрағат немесе а Пошта индексі файл. Таратылымдарда көбіне орнату сценарийлері болады (әдетте осылай аталады) Makefile.PL немесе Build.PL) және тарату мазмұнын тексеру үшін іске қосылатын тест-сценарийлер дұрыс жұмыс істейді. Жаңа дистрибьюторлар Perl Authors Upload Server немесе PAUSE жүктелді (бөлімді қараңыз) Таратуларды PAUSE көмегімен жүктеу ).

2003 жылы дистрибутивтер метадеректер деп аталатын файлдарды қоса бастады META.жмл тарату атауын, нұсқасын, тәуелділіктерін және басқа да пайдалы ақпаратты көрсете отырып; дегенмен, барлық таралымдарда метадеректер болмайды. Метадеректер таратуда болмаған кезде, PAUSE бағдарламалық жасақтамасы бірдей ақпаратты іздеу үшін дистрибутивтегі кодты талдауға тырысады; бұл өте сенімді емес. 2010 жылы осы сипаттаманың 2-нұсқасы жасалды[9] деп аталатын жаңа файл арқылы пайдалануға болады META.джсон, көбінесе YAML форматындағы файлға қосылады кері үйлесімділік.

Мыңдаған дистрибутивтермен бірге CPAN пайдалы болуы үшін құрылымдалуы керек. Авторлар көбінесе өз модульдерін Perl модулі атауларының табиғи иерархиясына орналастырады (мысалы Apache :: DBI немесе Lingua :: EN :: Inflect) мақсатқа немесе доменге сәйкес, дегенмен бұл орындалмайды.

CPAN модулінің дистрибутивтері, әдетте, түрінде болады CGI-Application-3.1 (қайда :: модульдің атауында пайдаланылатын сызықшаға ауыстырылды, ал нұсқа нөмірі атқа қосылды), бірақ бұл тек шартты жағдай; көптеген танымал дистрибьюторлар конвенцияны бұзады, әсіресе бірнеше модульдерден тұрады. Қауіпсіздік шектеулері таратудың бірдей файл атауымен алмастырылуына жол бермейді, сондықтан іс жүзінде барлық тарату атауларында а болады нұсқа нөмірі.

Компоненттер

CPAN-дің тарату инфрақұрылымы әлемнің 60-тан астам еліндегі 250-ден астам айна желісінен тұрады.[10] Әрбір толық айна шамамен 31-ге ие гигабайт мәліметтер.[11]

Көптеген айналар CPAN мастер-сайтынан сағат сайын, күн сайын немесе екі рет жаңарып отырады.[12] Кейбір сайттар көптеген басқа бағдарламалық жасақтамаларды көрсететін негізгі FTP серверлері болып табылады, ал басқалары - Perl-ді көп қолданатын компанияларға тиесілі серверлер. Антарктидадан басқа барлық континенттерде кем дегенде екі айна бар.

Perl бағдарламашыларына CPAN-ны сұрыптауға көмектесетін бірнеше іздеу жүйелері жазылған. Ресми іздеу.cpan.org мәтіндік іздеуді, модульдердің шолу индексін және қазіргі уақытта CPAN-да орналасқан барлық таратылымдардың көшірмелерін қамтиды. 16 мамырда 2018 жылы Perl қоры search.cpan.org сайтының ескі кодтық базасы мен қызмет көрсету ауырлығына байланысты 2018 жылдың 29 маусымында (19 жылдан кейін) жабылатынын хабарлады. Пайдаланушылар MetaCPAN үшінші тарап баламасына ауысады және қайта бағытталады.[13][14]

CPAN тестерлері - еріктілер тобы, олар CPAN-ға жүктелген кезде таратылымдарды жүктеп алады және тексереді. Бұл авторларға көптеген басқа платформалар мен орталарда өз модульдерін тестілеуден өткізуге мүмкіндік береді, әйтпесе оған қол жеткізе алмайтын болады, осылайша портативтілікті, сондай-ақ сапа дәрежесін жоғарылатуға көмектеседі. Түтін тексерушілер есептер жібереді, содан кейін олар жинақталып, әртүрлі презентация веб-сайттарында, соның ішінде негізгі есептер сайтында, статистика мен тәуелділіктерде қолданылады.

Авторлар CPAN-ға жаңа таратылымдарды Perl авторлары жүктеу сервері (ПАУЗА). Ол үшін олар КІДІРТУ шотын сұрауы керек.

Тіркелгеннен кейін, олар веб-интерфейсті пайдалана алады pause.perl.org немесе an FTP файлдарды олардың каталогына жүктеп, оларды жоюға арналған интерфейс. Жүктеудегі модульдер тек егер модульдің аты бұрын қолданылмаған болса (канондық) индекстеледі бірінші келу жүктеушіге рұқсат), немесе жүктеушінің осы атқа рұқсаты болса және модуль кез келген қолданыстағы жазбаға қарағанда жоғары нұсқасы болса.[15] Мұны PAUSE веб-интерфейсі арқылы анықтауға болады.

CPAN.pm, CPANPLUS және cpanminus

CPAN деп аталатын Perl негізгі модулі бар; ол әдетте репозиторийден CPAN.pm атауын қолдану арқылы ажыратылады. CPAN.pm негізінен дистрибутивтерді іздеу, жүктеу және орнату үшін пайдаланылатын интерактивті қабық болып табылады. Интерактивті қабықша деп аталады cpan Perl ядросында да ұсынылған және CPAN.pm-ді іске қосудың әдеттегі әдісі болып табылады. Қысқа конфигурация процесі мен айна таңдауынан кейін ол пайдаланушының компьютерінде автоматты түрде жүктеу, орау, жинақтау, тестілеу және орнату үшін құралдарды пайдаланады. Ол өзін-өзі жаңартуға қабілетті.

CPAN.pm-ді неғұрлым таза және заманауи нәрсемен алмастыру әрекеті CPANPLUS (немесе CPAN ++) модульдер жиынтығына әкелді. CPANPLUS командаларды шығару үшін пайдаланылатын интерактивті қабықтан модульдерді жүктеу, жинақтау және орнату бойынша жұмысты бөледі. Ол сондай-ақ криптографиялық қолтаңбаны тексеру және тест нәтижелері туралы есеп беру сияқты бірнеше жетілдірілген мүмкіндіктерді қолдайды. Ақыр соңында, CPANPLUS таратылымды жоя алады. CPANPLUS 5.10.0 нұсқасында Perl ядросына қосылды және 5.20.0 нұсқасында одан шығарылды.

Осы CPAN қондырғыларына кішірек, заманауи балама cpanminus деп аталынды. cpanminus жадының шектеулі ортасында жиі қажет болатын жадының ізін әлдеқайда кіші етіп құруға және Perl модульдерінің тек күтілетін жиынтығын қажет ететін өзін-өзі орнатуға болатын дербес сценарий ретінде қолдануға жарамды. Ол CPAN-дан App :: cpanminus модулі ретінде қол жетімді, ол орнатады cpanm сценарий. Ол тұрақты конфигурацияны сақтамайды немесе оған сенбейді, бірақ тек қоршаған орта мен пәрмен жолының параметрлері арқылы теңшеледі. cpanminus-те интерактивті қабық компоненті жоқ. Ол CPL-ді орнатуға арналмаған Perl арнайы жобаларында пайдалы алғышарттарды көрсетуге арналған cpanfile пішімін таниды. cpanminus-та дистрибутивтерді жою мүмкіндігі бар.

Осы модульдердің әрқайсысы үлестіруді тексере алады тәуелділіктер және автоматты түрде немесе пайдаланушының жеке мақұлдауымен кез-келген алғышарттарды рекурсивті түрде орнатыңыз. Әрқайсысы FTP және HTTP-ді қолдайды және брандмауэр мен прокси-сервер арқылы жұмыс істей алады.

Әсер ету

Тәжірибелі Perl бағдарламашылары Perl-дің жарты күші CPAN-да деп жиі айтады. Ол Перлдікі деп аталды killer қосымшасы.[16] Бұл шамамен тең PECL және АЛМҰРТ үшін PHP; The PyPI (Python пакетінің индексі) репозитарийі Python; RubyGems үшін Рубин; CRAN үшін R; npm үшін Node.js; LuaRocks үшін Луа; Maven үшін Java; және Ұрлау үшін Хаскелл. CPAN арбитражды кеңістіктерді, тестілеу режимін және нақты анықталған құжаттама стилін қолдануы оны бірегей етеді.

Perl әзірлеушілер қауымдастығы үшін оның маңыздылығын ескере отырып, CPAN екі формада да қалыптасады Перлдің мәдениеті. Оның «өзін-өзі тағайындаған шебер кітапханашы», Jarkko Hietaniemi, жиі қатысады Сәуір ақымақтары күні әзілдер; 2002 жылдың 1 сәуірінде сайт уақытша аталды CJAN, онда «J» «Java» тұрды. 2003 жылы www.cpan.org домен атауы қайта бағытталды Мэттің сценарийлер мұрағаты, Perl қоғамдастығында нашар жазылған код үшін танымал сайт.[17][18][19]

CPAN-дегі кейбір таратылымдар әзіл ретінде таратылады. The Акме:: иерархия әзіл-қалжың модульдері үшін сақталған; мысалы, Акме :: Жоқ қосады а жасамаңыз оған берілген кодты іске қоспайтын функция (толықтыру үшін істеу кіріктірілген, ол жасайды). Тіпті сыртында Акме :: иерархия, кейбір модульдер көбіне ойын-сауық үшін жазылады; бір мысал Lingua :: Romana :: Perligata, оны Perl бағдарламаларын латынның ішкі тобына жазуға қолдануға болады.

2005 жылы Perl-дің JavaScript-ке қызығушылығы бар әзірлеушілер тобы жиналды JSAN, JavaScript архивтік желісі. JSAN - бұл JavaScript тілімен пайдалануға арналған CPAN инфрақұрылымының тікелей порты, ол өмірінің көп уақытында біртұтас «қауымдастық» болмаған.

2008 жылы CPAN әкімшісімен кездейсоқ кездесуден кейін Адам Кеннеди Open Source Developers конференциясында, Linux ядросын жасаушы Rusty Russell CCAN-ді құрды, бұл C архивінің жан-жақты желісі. CCAN - пайдалануға арналған CPAN архитектурасының тікелей порты C тілі.

CRAN, кешенді архивтік желі - бұл айна жиынтығы R бағдарламалау тілі тарату (лар), құжаттама және кеңейтілген кеңестер.[20]

Әкімшілер

Адам Кеннеди

Адам Кеннеди 2016 жылы

Адам Кеннеди - бұл Австралиялық Перл бағдарламашы және бірнеше CPAN әкімшілерінің бірі. ADAMK-ның CPAN авторлық идентификаторы бойынша ол 200-ден астам қолдау көрсетеді модульді үлестіру CPAN-да, ол оны CPAN жарналарының көшбасшылар тізімінің жоғарғы жағына шығарады.[21] Кеннеди - 200-ден астам CPAN модулінің алғашқы қызметшісі, олардың көпшілігі басқа авторлардан қабылданды және кез-келген тіркелген CPAN авторы қолдана алатын өзінің ашық репозиторийіне енгізілді. Сияқты ашық көзі бар конференцияларға жиі қатысады OSDC, OSCON, және YAPC сонымен қатар Perl QA хакатондары.

Кеннеди Perl бағдарламалау тілі үшін бірнеше маңызды модульдер әзірледі, әсіресе PPI сияқты құралдар тізбегін құруды жақсарту құралдары саласында [22] (a Perl талдаушысы), CPAN :: Көрсеткіштер[23] (CPAN-да 16 м + код жолдарында көрсеткіштер жасаңыз), Portable Perl[24] («таяқтағы перл») және Падре (Perl IDE). Ол Windows-тағы Perl үшін платформа теңдігінің мықты қорғаушысы болды және Win32 Perl Wiki-ді де, Windows үшін Strawberry Perl дистрибуциясын да бастады.

PPI

Perl PPI талдаушысы Perl 5 кодын талдау, құжаттама және қайта өңдеу құралдары үшін маңызды блок құрды. Perl :: Сыншы[25] критерийлерге сәйкес Perl бастапқы кодын сынау үшін PPI пайдаланады Perl үздік тәжірибелері; Padre IDE кодты талдау және қайта өңдеу үшін PPI пайдаланады. PPI құжаттамасы «Perl (аудармашы) ғана Perl-ді (бастапқы кодты) талдай алады» деген труизмге сілтеме жасайды, өйткені ол динамикалық тіл; PerlMonks-тағы хабарлама ресми дәлел келтіреді.[26]

Құлпынай Perl

Құлпынай Perl - Windows амалдық жүйесіне арналған Perl-дің екілік таралуы. Windows негізіндегі Perl дистрибутивтерінен айырмашылығы, Strawberry Perl сонымен бірге Windows ортасымен үйлесімділікті жақсарту үшін C компиляторын, құрал жасауды және кейбір алдын ала конфигурацияланған модульдерді біріктіреді. Бұл тарату мақсаты CPAN-да қол жетімді ең жаңа модульдерді сынау және қолдану үшін практикалық жағдай жасау болып табылады. Ларри Уолл, Perl-ді жасаушы мұны Windows үшін жақсы порт ретінде мақұлдады.[27]

Портативті Perl («таяқтағы Perl»)

Портативті Perl[28] портлеттің флэш-жадына, iPod-қа, ұялы телефонға, фотоаппаратқа және т.б. орнатуға жарамды Perl дистрибуциясы. Бірінші шығарылым OSCON 2008-де USB бастырғыштарында таратылды.[29] Жобаның алғашқы жұмысы The Perl Foundation грантымен қаржыландырылды.

Әдебиеттік библиография

Адам Кеннеди әлемдегі бірқатар техникалық конференцияларда, соның ішінде OSCON, OSDC, Linux.conf.au және көптеген YAPC іс-шаралар. Бұл келіссөздерге мыналар кіреді:

  • PITA - күлкілі ауқымды тестілеу, YAPC :: NA 2006 [30]
  • Ешнәрсе дұрыс болмауы мүмкін, Linux.conf.au 2007 ж [31]
  • Strawberry Perl, Win32 платформасының теңдігіне қол жеткізу, OSCON 2008 [32]
  • Падре - қалыпты адамдарға арналған Perl IDE, OSDC 2009 [33]
Ағымдағы жұмыс

Адам көшті Сан-Франциско, Калифорния, Америка Құрама Штаттарында 2012 ж. Жұмыс істеді Kaggle 2012-2015 жж. бастап инженер болып жұмыс істей бастады алма 2016 жылы.[34] Қазіргі уақытта ол Apple-дегі Siri Search деректер менеджері менеджері қызметін атқарады[35]

Әдебиеттер тізімі

  1. ^ «CPAN алдыңғы беті». Алынған 27 қаңтар 2016.
  2. ^ «Perl және CPAN модульдері қалай лицензияланған?». CPAN модульдерінің барлығы болмаса да, көпшілігі GNU General Public License (GPL) немесе Artistic лицензиясы бойынша лицензияланған ...
  3. ^ «Перлдің хронологиясы және оның мәдениеті».
  4. ^ «CPAN-ді қорқыту» (PDF). Мен TeX үшін канондық сайттар топтамасын құра алған CTAN жобасы сияқты біртұтас құрылым құру үшін ынтымақтасуымызды ұсынамын.
  5. ^ «ExtUtils :: MakeMaker - Makefile модулін жасаңыз - Perldoc шолушысы». perldoc.perl.org. Алынған 18 қараша 2020.
  6. ^ «Тізім :: Util - жалпы утилиталар тізімінің ішкі бағдарламаларын таңдау - Perldoc Browser». perldoc.perl.org. Алынған 18 қараша 2020.
  7. ^ «BackPAN». Алынған 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: Killer Apps in PERL». Алынған 24 ақпан 2013.
  17. ^ «Perl көмегімен бағдарламалау элементтері». 12 қазан 2000. Алынған 25 сәуір 2013.
  18. ^ «Осы formmail.pl-ді көңіл көтеру үшін пайдаланыңыз». 7 тамыз 2001. Алынған 25 сәуір 2013.
  19. ^ «Мэттің сценарий архиві тағы соққыға жықты!». 4 шілде 2001 ж. Алынған 25 сәуір 2013.
  20. ^ «CRAN деген не?». Алынған 20 желтоқсан 2019.
  21. ^ http://thegestalt.org/simon/perl/wholecpan.html
  22. ^ https://metacpan.org/module/PPI
  23. ^ https://metacpan.org/module/CPAN::Metrics
  24. ^ https://metacpan.org/module/Portable
  25. ^ https://metacpan.org/module/Perl::Сыншы
  26. ^ http://www.perlmonks.org/?node_id=663393
  27. ^ http://www.computerworld.com.au/article/270267/-z_programming_languages_perl?pp=3&fp=&fpid=
  28. ^ «Мұрағатталған көшірме». Архивтелген түпнұсқа 2011 жылғы 21 шілдеде. Алынған 30 маусым 2009.CS1 maint: тақырып ретінде мұрағатталған көшірме (сілтеме)
  29. ^ «Мұрағатталған көшірме». Архивтелген түпнұсқа 6 шілде 2010 ж. Алынған 30 маусым 2009.CS1 maint: тақырып ретінде мұрағатталған көшірме (сілтеме)
  30. ^ http://www.media-landscape.com/yapc/2006-06-26.AdamKennedy/
  31. ^ http://lca2007.linux.org.au/talk/122.html
  32. ^ http://kk.oreilly.com/oscon2008/public/schedule/detail/2769
  33. ^ «Мұрағатталған көшірме». Архивтелген түпнұсқа 2009 жылғы 24 қазанда. Алынған 28 қараша 2009.CS1 maint: тақырып ретінде мұрағатталған көшірме (сілтеме)
  34. ^ https://www.linkedin.com/in/adamatalias
  35. ^ «Спикер Bio 2019».

Сыртқы сілтемелер