CPAN - CPAN
Az Átfogó Perl Archív Hálózat ( CPAN ) több mint 250 000 szoftvermodul és 39 000 terjesztés kísérő dokumentációjának tárháza , amelyet Perl programozási nyelven több mint 12 000 közreműködő írt . A CPAN jelölheti akár az archív hálózatot, akár a Perl programot, amely interfészként működik a hálózaton és automatizált szoftver telepítőként (kissé hasonlóan egy csomagkezelőhöz ). A legtöbb CPAN szoftver ingyenes és nyílt forráskódú szoftver .
Történelem
A CPAN-t 1993-ban hozták létre, és 1995 októbere óta aktív online. A CTAN modellen alapul, és a szétszórt Perl-archívumok szerkezetének egységesítésének helyeként indult.
Szerep
Mint sok programozási nyelvek , Perl mechanizmusokat használja a külső könyvtárak kódot, ami egy fájl tartalmaz közös rutinok által használt több program. Perl hívja ezeket a modulokat . A Perl modulokat általában több olyan könyvtár egyikébe telepítik, amelyek útvonala az első fordításkor kerül a Perl tolmácsba ; a Unix-szerű operációs rendszereken a közös elérési utak a / usr / lib / perl5 , / usr / local / lib / perl5 és számos alkönyvtárukat tartalmazzák.
A Perl egy kis magmodullal rendelkezik . Ezek közül néhány bootstrapping feladatokat hajt végre, mint például az ExtUtils :: MakeMaker, amely Makefile-okat hoz létre más kiterjesztési modulok felépítéséhez és telepítéséhez; másokat, mint például a List :: Util, csak gyakran használják.
A CPAN fő célja, hogy segítse a programozókat a Perl szabványos disztribúcióban nem szereplő modulok és programok felkutatásában. Felépítése decentralizált. A szerzők fenntartják és fejlesztik saját moduljaikat. Az elágazás és a versengő modulok létrehozása ugyanarra a feladatra vagy célra általános. Van egy harmadik féltől származó hibakövető rendszer, amelyet automatikusan beállítanak minden feltöltött terjesztéshez, de a szerzők választhatnak egy másik hibakövető rendszert, például a GitHub-ot . Hasonlóképpen, bár a GitHub egy népszerű hely, ahol a forrást tárolja a terjesztések számára, tárolható bárhol, ahol a szerző preferálja, vagy lehet, hogy egyáltalán nem elérhető nyilvánosan. A karbantartók engedélyeket adhatnak másoknak moduljaik karbantartására vagy átvételére, az adminisztrátorok pedig engedélyeket adhatnak azoknak, akik el akarják venni az elhagyott modulokat. A frissített terjesztések korábbi verziói addig maradnak a CPAN-on, amíg a feltöltő nem törli őket, a BackPAN nevű másodlagos tükörhálózat pedig akkor is megőrzi a terjesztéseket, ha törlik őket a CPAN-ból. Ezenkívül a CPAN és annak összes moduljának teljes története elérhető a GitPAN projektként, amely lehetővé teszi az összes modul teljes előzményeinek egyszerű megtekintését és a villák könnyű karbantartását. A CPAN-t a Perl új verzióinak, valamint a kapcsolódó projektek, például a Parrot és a Raku terjesztésére is használják .
Szerkezet
A CPAN fájljait disztribúciónak nevezzük . A disztribúció egy vagy több modulból, dokumentációs fájlból vagy programból állhat, amelyek közös archiválási formátumban vannak csomagolva, például egy gzip-es tar- archívum vagy egy ZIP- fájl. A disztribúciók gyakran tartalmaznak telepítési parancsfájlokat (általában Makefile.PL vagy Build.PL nevűek ) és tesztszkripteket, amelyek futtathatók a terjesztés tartalmának megfelelő működésének ellenőrzésére. Az új disztribúciók feltöltésre kerülnek a Perl Szerzők feltöltő szerverére vagy a SZÜNET-re (lásd a Terjesztések feltöltése szünettel című részt ).
2003-ban a disztribúciók metaadatfájlokat kezdtek tartalmazni, az úgynevezett META-t. yml , megjelölve a terjesztés nevét, verzióját, függőségeit és egyéb hasznos információkat; azonban nem minden disztribúció tartalmaz metaadatokat. Ha a metaadatok nincsenek jelen a disztribúcióban, a PAUSE szoftvere megpróbálja elemezni a disztribúcióban lévő kódot, hogy azonos információkat keressen; ez nem feltétlenül túl megbízható. 2010-ben ennek a specifikációnak a 2. verzióját hozták létre, hogy egy új, META nevű fájlon keresztül lehessen használni . json , a visszamenőleges kompatibilitás érdekében a YAML formátumú fájlt is gyakran tartalmazzák .
Több ezer disztribúció esetén a CPAN-t strukturálni kell, hogy hasznos legyen. A szerzők gyakran a Perl modulnevek (például Apache::DBI vagy Lingua::EN::Inflect ) természetes hierarchiájába helyezik moduljaikat rendeltetésük vagy tartományuk szerint, bár ez nincs érvényben.
A CPAN modul disztribúcióknak általában CGI-Application-3.1 formátumú nevei vannak (ahol a modul nevében használt :: helyébe kötőjel került, a verziószámot pedig a névhez csatolták), de ez csak konvenció ; sok prominens disztribúció megsérti a konvenciót, különösen azok, amelyek több modult tartalmaznak. A biztonsági korlátozások megakadályozzák, hogy egy terjesztést valaha is azonos fájlnévvel cseréljenek, így gyakorlatilag minden terjesztési név tartalmaz verziószámot .
Alkatrészek
A CPAN terjesztési infrastruktúrája világszerte több mint 250 tükröt magában foglaló hálózatából áll, több mint 60 országban. Minden teljes tükör körülbelül 31 gigabájt adatot tartalmaz.
A legtöbb tükrönként óránként, naponta vagy naponta frissül a CPAN fő webhelye. Egyes webhelyek nagy FTP-szerverek, amelyek sok más szoftvert tükröznek, mások azonban egyszerűen olyan szerverek, amelyek olyan cégek tulajdonában vannak, amelyek erősen használják a Perlt. Az Antarktisz kivételével minden kontinensen van legalább két tükör.
Számos keresőmotort írtak, amelyek segítenek a Perl programozóinak a CPAN rendezésében. A hivatalos keresés
A CPAN tesztelők önkéntesek egy csoportja, akik letöltik és tesztelik a disztribúciókat a CPAN-ra való feltöltéskor. Ez lehetővé teszi a szerzők számára, hogy moduljaikat számos olyan platformon és olyan környezetben teszteljék, amelyhez egyébként nem férnének hozzá, ezáltal elősegítve a hordozhatóságot, valamint a minőség bizonyos fokát. A füsttesztelők jelentéseket küldenek, amelyeket aztán összegyűjtenek és felhasználnak a különféle prezentációs webhelyekhez, ideértve a fő jelentési webhelyet, a statisztikákat és a függőségeket.
A szerzők új terjesztéseket tölthetnek fel a CPAN-ba a Perl Authors Upload Server (PAUSE) keresztül. Ehhez szüneteltetést kell kérnie.
A regisztráció után a pause.perl.org címen található webes felületet vagy egy FTP- felületet használhatnak fájlok feltöltésére a könyvtárukba és törlésükre. A modulok a feltöltési csak akkor indexelt kanonikus, ha a modul nevét nem használtak korábban (neve érkezési engedélyt a feltöltő), vagy ha a feltöltő engedélyt a nevet, és ha a modul egy újabb verzió, mint bármely meglévő bejegyzés. Ezt a PAUSE webes felületén keresztül lehet megadni.
CPAN.pm, CPANPLUS és cpanminus
Van még egy Perl központi modul, CPAN néven; általában a CPAN.pm név használatával különbözteti meg magától az adattártól. A CPAN.pm főleg egy interaktív shell, amely terjesztések keresésére, letöltésére és telepítésére használható. Egy interaktív shell nevű cpan is biztosított a Perl mag, és a szokásos módon fut CPAN.pm. Rövid konfigurációs folyamat és tükörválasztás után a felhasználó számítógépén elérhető eszközök segítségével modulokat automatikusan letölt, kicsomagol, összeállít, tesztel és telepít. Képes önmagát is frissíteni.
Az a törekvés, hogy a CPAN.pm-et valami tisztább és modernebbre cserélje, a CPANPLUS (vagy CPAN ++) modulkészletet eredményezte. A CPANPLUS elválasztja a modulok letöltésének, fordításának és telepítésének háttérmunkáját a parancsok kiadására használt interaktív héjtól. Számos speciális funkciót is támogat, mint például a kriptográfiai aláírás ellenőrzése és a teszt eredményeinek jelentése. Végül a CPANPLUS eltávolíthatja a terjesztést. A CPANPLUS-t hozzáadták a Perl maghoz az 5.10.0 verzióban, és eltávolították belőle az 5.20.0 verzióban.
Kisebb, karcsúbb modern alternatívát fejlesztettek ki ezekhez a CPAN-telepítőkhöz cpanminus néven. A cpanminust úgy tervezték, hogy sokkal kisebb memóriaterülettel rendelkezzen, amire a korlátozott memóriakörnyezetekben gyakran szükség van, és hogy önálló szkriptként használható legyen, így akár önmagát is telepítheti, és csak a Perl magok várható elvárt készletének rendelkezésre állására van szükség. A CPAN-tól elérhető az App :: cpanminus modul is, amely telepíti a cpanm parancsfájlt. Nem tartja fenn a tartós konfigurációt vagy nem támaszkodik rá, hanem csak a környezet és a parancssori opciók konfigurálják. A cpanminus nem rendelkezik interaktív shell komponenssel. Felismeri a cpanfile formátumot az előfeltételek megadásához, amelyek hasznosak lehetnek olyan ad-hoc Perl projektekben, amelyeket esetleg nem CPAN telepítésre terveztek. A cpanminus képes a disztribúciók eltávolítására is.
E modulok mindegyike ellenőrizheti a disztribúció függőségét, és rekurzív módon telepítheti az előfeltételeket, akár automatikusan, akár egyedi felhasználói jóváhagyással. Mindegyik támogatja az FTP-t és a HTTP-t, és képes működni tűzfalakon és proxykon keresztül.
Befolyás
Tapasztalt Perl programozók gyakran megjegyzik, hogy a Perl teljesítményének fele a CPAN-ban van. Perl gyilkos alkalmazásának hívták . Nagyjából egyenértékű a PECL és a PHP PHAR- jával ; a PyPI (Python Package Index) tárház a Python számára ; RubyGems for Ruby ; CRAN for R ; npm a Node.js fájlhoz ; LuaRocks for Lua ; Maven a Java ; és Hackage a Haskell . A CPAN tetszőleges névterek, tesztelési rendszer és jól definiált dokumentációs stílus használata egyedivé teszi.
Tekintettel a Perl fejlesztői közösség számára betöltött jelentőségére, a CPAN Perl kultúrája egyaránt formálja és alakítja . Jarkko Hietaniemi "önjelölt könyvtáros mester" gyakran részt vesz az bolondok napi viccekben; 2002. április 1-jén a helyszín ideiglenesen a CJAN nevet kapta , ahol a "J" a "Java" -ot jelentette. 2003-ban a www.cpan.org domain nevet átirányították a Matt Script Archive-ba , amely a Perl közösségben hírhedt webhely rosszul írt kód miatt található.
A CPAN disztribúcióinak némelyikét viccként osztják szét. A Acme:: hierarchia viccmodulok számára van fenntartva; például Acme::Don't hozzáad egy olyan don't függvényt, amely nem futtatja a neki megadott kódot (a do beépített kiegészítésére , ami igen). Acme:: Néhány modul még a hierarchián kívül is jórészt szórakoztatás céljából íródott; az egyik példa Lingua::Romana::Perligata , amellyel Perl programokat írhatunk a latin részhalmazába.
2005-ben a Perl fejlesztők egy csoportja, akik szintén érdeklődtek a JavaScript iránt, összefogtak, hogy létrehozzák a JSAN-t , a JavaScript Archive Network-t. A JSAN a CPAN infrastruktúra majdnem közvetlen portja, amely a JavaScript nyelvvel használható, és amelynek élettartama nagy részében nem volt összetartó "közösség".
2008-ban, miután a nyílt forráskódú fejlesztők konferenciáján véletlenül találkozott Adam CPH- rendszergazdával, Rusty Russell , a Linux rendszermag-fejlesztő létrehozta a CCAN-t, az Átfogó C Archív Hálózatot. A CCAN a CPAN architektúra közvetlen portja, amely a C nyelvvel használható .
A CRAN, az Átfogó R Archív Hálózat, az R programozási nyelv terjesztését (dokumentációit), dokumentációit és a hozzá tartozó kiterjesztéseket tároló tükrök összessége .
Rendszergazdák
Adam Kennedy
Adam Kennedy ausztrál Perl programozó és a CPAN rendszergazdáinak egyike. Az ADAMK CPAN szerzői azonosítója alatt a CPAN több mint 200 modulterjesztésének fenntartója , amely őt a CPAN hozzájárulási ranglistájának tetejére helyezi. Kennedy több mint 200 CPAN-modul első karbantartója, amelyek közül sokat átvett más szerzőktől, és felvette Nyílt tárházába, amelyet bármely regisztrált CPAN-szerző használhat. Gyakori előadója olyan nyílt forráskódú konferenciáknak, mint az OSDC , az OSCON és a YAPC , valamint a Perl QA hackatonoknak.
Kennedy kifejlesztett néhány jelentős modult a Perl programozási nyelv számára, különösen a fejlesztés és az eszköztár fejlesztésének javítására szolgáló eszközök területén, mint például a PPI (egy Perl-elemző), a CPAN :: Metrics (metrikákat generál a CPAN 16 m + kódsorain) ), Portable Perl (más néven: "Perl egy bottal") és Padre (egy Perl IDE) . A Windows platformon a Perl platformegyenlőségének erőteljes híve volt, és elindította a Win32 Perl Wiki és a Strawberry Perl disztribúciót a Windows számára.
- PPI
A Perl PPI elemző elengedhetetlen építőelemet biztosított a Perl 5 kódelemzéshez, a dokumentációhoz és az újratervezési eszközökhöz. Perl :: A kritikus a PPI segítségével kritizálja a Perl forráskódot a Perl Best Practices kritériumai alapján ; a Padre IDE a PPI-t használja a kódelemzéshez és a refaktoráláshoz. A PPI dokumentáció hivatkozik arra a valóságra, hogy "Csak a perl (az értelmező) képes értelmezni a Perl-t (forráskód)", mert ez egy dinamikus nyelv ; a PerlMonks-ra vonatkozó bejegyzés hivatalos bizonyítékot állít fel.
- Strawberry Perl
A Strawberry Perl a Perl bináris terjesztése a Windows operációs rendszer számára. A legtöbb Windows-alapú Perl disztribúcióval ellentétben a Strawberry Perl egy C fordítót, make eszközt és néhány előre konfigurált modult is tartalmaz, hogy javítsa a kompatibilitást a Windows környezettel. A disztribúció célja, hogy gyakorlati környezetet teremtsen a CPAN által elérhető legújabb modulok teszteléséhez és használatához. Larry Wall , a Perl készítője ezt jó portnak adta a Windows számára.
- Hordozható Perl (más néven "Perl egy bottal")
A Portable Perl az első Perl disztribúció, amely alkalmas hordozható flash memóriaeszközökre, iPod-okra, mobiltelefonokra, kamerákra stb. Történő telepítésre. Az első kiadást USB-meghajtókon osztották ki az OSCON 2008-ban. A projekt első munkáját a The Perl támogatásával finanszírozták. Alapítvány.
- Beszélő bibliográfia
Adam Kennedy világszerte számos technikai konferencián beszélt, többek között az OSCON , az OSDC , a Linux.conf.au és számos YAPC eseményen. Ezek a tárgyalások a következőket tartalmazzák:
- PITA - Nevetségesen nagy léptékű tesztelés , YAPC :: NA 2006
- Semmi nem baj , Linux.conf.au 2007
- Strawberry Perl, a Win32 platform egyenlőségének elérése , OSCON 2008
- Padre - A Perl IDE normális emberek számára , OSDC 2009
- Aktuális munka
Adam 2012-ben az Egyesült Államok Kaliforniai San Franciscóba költözött . 2012 és 2015 között a Kaggle- nél dolgozott, és 2016-ban mérnökként kezdett dolgozni az Apple -nél. Jelenleg az Apple Siri Search adatmérnöki vezetője.
Hivatkozások
Külső linkek
-
Hivatalos honlapján
- MetaCPAN
- Listája hivatalos CPAN tükör , állapotát tükrök
- ZCAN - "Az átfogó archív hálózatok zenéje" - egy dokumentum, amelynek célja elmagyarázni, hogyan és miért sikerült a CPAN-nek, és hogyan lehet megismételni hasonló erőfeszítésekkel. (2003. január 9., Jarkko Hietaniemi ).