Das Comprehensive Perl Archive Network
- Aktualisiert: Freitag, 25. März 2022 10:07
- Geschrieben von Mazin Shanyoor
CPAN (engl. Comprehensive Perl Archive Network) ist ein weltweit gespiegeltes Online-Repository für Perl-Module, -Anwendungen und Dokumentationen, das am 25. Oktober 1995 in Anlehnung an die TeX-Library CTAN ins Leben gerufen wurde und sich schnell zum Perl-de-facto-Standard entwickelt hat. Es bietet die Möglichkeit einer komfortablen Installation und Verwaltung von Perl-Modulen. Heute umfasst das CPAN circa 230 Server auf fünf Kontinenten und enthält über 17.000 Distributionen von über 7.200 Autoren, was einem Volumen von annähernd 4,9 GB entspricht.
Entstehung
Das Repository entstand aus einfach verlinkten, privaten Webseiten die freie Perlmodule zum Herunterladen anboten und deren Betreiber sich perl-packrats nannten. Die Seite des Finnen Jarkko Hietaniemi entwickelte sich dabei zum Vorreiter, da sie meist sehr aktuell war und die meisten Module enthielt. Sie wurde immer selbstverständlicher von den anderen gespiegelt, bis Jarkko den Inhalt der wichtigen Archive vereinigte und somit das CPAN schuf. Andreas König erweiterte dieses Archiv um PAUSE (Perl Author Upload SErver), das den Autoren ermöglicht, selbst ihre Module im CPAN zu veröffentlichen. Andere Teile dessen, was heute als CPAN sichtbar ist, gehen wiederum auf die Verbesserungen von Jarkko zurück. Lediglich die Suchmöglichkeiten und der CPAN-Multiplexer sind das Werk anderer Perl-Veteranen.
Regeln
Ein Teil des Erfolges ist auch darauf zurückzuführen, dass sich über die Jahre strikte Standards für die hochgeladenen Module etabliert haben. Jedes Modul sollte zumindest eine MANIFEST-Datei, eine Readme-Datei, Metainformationen in Form einer META.yml-Datei und ein Installationsskript enthalten. Außerdem sollten alle Funktionen direkt im Quellcode mit POD-Dokumentation versehen werden. Zusätzlich sollten möglichst viele Test-Skripte enthalten sein, diese werden beim Installieren automatisch ausgeführt und deren Resultate (mit der Zustimmung des Benutzers) ebenfalls automatisch an CPAN zurückgesendet. So kann der Autor binnen kürzester Zeit Testresultate von verschiedensten Systemen erhalten.
CPAN-Modul
Mit dem Modul CPAN von Andreas König beziehungsweise dessen designiertem Nachfolger CPANPLUS von Jos Boumans, Audrey Tang und anderen kann man leicht von einer Kommandozeile aus, und unabhängig vom Betriebssystem, ein Perlmodul im CPAN suchen, herunterladen, testen, installieren oder deinstallieren. Dies ist auch interaktiv mit sogenannten CPAN-Shells möglich, die man einfach mittels „cpan“ oder „cpanp“ aufruft.
Module installieren
perl Makefile.pl
make
make test
make install
CPAN-Module werden mit dem klassischen make-Werkzeug installiert, ähnlich wie bei Autoconf wird allerdings auch hier die Makefile erst auf dem Zielrechner, auf dem das CPAN-Modul installiert werden soll, erstellt. Dies wird naheliegend mit einem mitgelieferten Perl-Programm gemacht, welches etwa dem Aufruf von ./configure bei Autoconf entspricht.
Eine Installation läuft anschließend wie die eines gewöhnlichen Programmes ab (siehe rechts): Mit make wird der Quelltext ggf. kompiliert (z.B. betriebssystemabhängige Teile, die in C geschrieben sind), mit make test werden die mitgelieferten Testprogramme ausgeführt und mit make install wird das CPAN-Modul in das von der Perl-Installation vorgeschriebene Zielverzeichnis installiert.
Erweiterungen
In den letzten Jahren gab es mehrere Initiativen, die dem CPAN neue Funktionen gaben beziehungsweise dem CPAN beigefügt sind.
- Phalanx Project - Initiative zur Verbesserung der Dokumentation und Testabdeckung von Perl und seiner wichtigsten 100 Module.
- CPAN Testing Service (CPANTS) - Ein Dienst, der alle Distributionen automatisch auf mögliche formale Unzulänglichkeiten prüft.
- CPAN Testers - überprüft neue Modulversionen auf ihre Lauffähigkeit unter verschiedenen Betriebssystemen und Konfigurationen.
- CPAN Ratings - Bewertungen (0 bis 5 Sterne) und Rezensionen von Modulen.
- Annotated CPAN - Möglichkeit für Benutzer, Kommentare in die Dokumentation der Module einzufügen, die zusätzlich eingeblendet werden können.
Alternative
ActiveState liefert zu seiner Distribution ActivePerl ein vom Funktionsumfang her vergleichbares Werkzeug namens „ppm“ mit, das seine Dateien allerdings nicht direkt aus dem CPAN, sondern aus einem daraus abgeleiteten Repository bezieht, welches für einige Betriebssysteme wie Windows, Linux und Solaris vorcompilierte Pakete enthält.
Der Beitrag "Das Comprehensive Perl Archive Network" auf running-cool.de basiert auf dem Artikel CPAN aus der freien Enzyklopädie Wikipedia und steht unter der GNU-Lizenz für freie Dokumentation. In der Wikipedia ist eine Liste der Autoren verfügbar.