Perl

CPAN mit ActivePerl

09. Dezember 2010 · Programmierung · andreas · Kein Kommentar

Auch wenn sich “Perl unter Windows: Erdbeere oder Komodowaran?” auf den ersten Blick etwas anders lesen mag, auch unter ActivePerl ist ein Zugriff auf das Comprehensive Perl Archive Network (CPAN) ohne große Klimmzüge möglich - nur um’s im Mozilla-Jargon zu sagen “Hier endet möglicherweise die Gewährleistung!”.

Die CPAN-Shell ist zwar nicht im Startmenü verlinkt, kann aber von der Kommandozeile mittels Eingabe von “cpan” gestartet werden. Je nach verwendeter Windows-Installation und Installationsverzeichnis muß dies u.U. als Administrator geschehen, um die benötigten Schreibrechte zu erhalten.

Sollte ActivePerl keinen installierten C-Compiler vorfinden, wird analog zu Strawberry Perl die Minimalist GNU for Windows-Umgebung MinGW zusammen mit “dmake” über den Perl Package Manager installiert und konfiguriert, so daß anschließend eine voll funktionsfähige CPAN-Shell zur Verfügung steht.


Perl unter Windows: Erdbeere oder Komodowaran?

16. November 2010 · Programmierung · andreas · 1 Kommentar

Während Perl bei Unix-Betriebssystemen zum Lieferumfang gehört, muß ein Windows-Anwender sich erst selbst eineDistribution herunterladen.

Als erste Anlaufstelle ist das Win32 Perl Wiki geeignet, das eine gute Übersicht über die verfügbaren Perl-Distributionen für Windows liefert, von denen für “normale” Einsatzzwecke allerdings nur zwei übrig bleiben: ActivePerl und Strawberry Perl.

ActivePerl, sowohl als freie Community-Version als auch mit professionellem (und zu bezahlendem) Support durch den Distributor ActiveState erhältlich, ist sicherlich weiter verbreitet. Das herausragende Merkmal ist der Perl Package Manager (ppm, in der aktuellen Version 3), der mit einer übersichtlichen graphischen Oberfläche die Installation sowie Aktualisierung windowskompatibler Pakete mit wenigen Mausklicks erledigt.

Die Fokusierung auf den Package Manager ist aber auch gleichzeitig die größte Schwäche von ActivePerl, denn dieser setzt vorkonfigurierte und vorkompilierte Binärpaketen voraus, statt diese - wie unter Unix üblich - als Quellcode aus dem Comprehensive Perl Archive Network (CPAN) zu laden und auf der Zielmaschine zu kompilieren. Die Folge daraus ist, daß nicht alle im CPAN vorhandenen Module als ppm erhältlich sind und die verfügbaren Module oft 1-2 Versionsnummern hinterher hinken - bis sich jemand findet, der das entsprechende Paket erstellt. Dafür durchlaufen die Pakete zumindest eine rudimentäre Qualitätskontrolle, da Pakete erst nach erfolgreichem Absolvieren ihrer Testsuite zu den ppm-Repositories hinzugefügt werden.

Das Hauptargument gegen das Verwenden der CPAN-Shell (die ActivePerl auch beiliegt) unter den Microsoft-Betriebssystemen ist, daß einer Standard-Windowsversion neben Perl auch andere wichtige Entwicklungswerkzeuge wie z.B. ein C-Compiler fehlen, die unter Unix Standard sind. Solange ein Modul in reinem Perl geschrieben ist, funktioniert alles wunderprächtig, sobald aber ein Compiler benötigt wird, scheitert die Installation.

Diese Lücke füllt Strawberry Perl, in dem es zusammen mit Perl auch die MinGW (Minimalist GNU for Windows)-Entwicklungsumgebung mitbringt, um im Falle eines Falles zur Modulinstallation notwendige Kompilierungen wie unter Unix automatisiert durchführen zu können. Das klingt im ersten Moment fabelhaft, der Erfolg hängt aber davon ab, wie Windows-kompatibel das zu installierende Modul entwickelt wurde.

ActivePerl macht den Einstieg in die Perl-Welt leicht und überzeugt mit einfacher Bedienung, erkauft durch eine eingeschränkte Modulauswahl mit teilweise veralteten Versionen, die aber unter Windows wie gewünscht funktionieren. Strawberry Perl eröffnet Zugriff auf das komplette CPAN, mit der Gefahr, daß einige Module in der Windows-Welt nicht wie gewünscht oder übrhaupt nicht funktionieren.


ppm install failed: Can't find any package that provide perl for ...

22. November 2008 · Programmierung · andreas · Kein Kommentar

Sollte der Versuch ein Modul mittels ppm zu installieren mit einem “ppm install failed: Can’t find any package that provide perl for [Modulname]” quittiert werden, so lohnt sich meist ein Blick in die zugehörige ppd-Datei. Dort ist im Normalfall eine Zeile wie

<REQUIRE NAME="perl" VERSION="5.004" />

zu finden, die das Problem verursacht und nach deren Löschung die Installation problemlos gelingt.


could not find ParserDetails.ini in /Perl/site/lib/XML/SAX

27. Oktober 2008 · Programmierung · andreas · 1 Kommentar

Taucht nach der Installation des Moduls XML::SAX die Fehlermeldung “could not find ParserDetails.ini in /Perl/site/lib/XML/SAX” auf, so findet sich die Lösung in den Perl-XML Frequently Asked Questions:

perl -MXML::SAX -e "XML::SAX->add_parser(q(XML::SAX::PurePerl))->save_parsers()"

GD-Modul unter ActivePerl installieren

21. September 2008 · Programmierung · andreas · Kein Kommentar

Die ActivePerl-Distribution kommt zwar schon mit einer Menge Module daher, aber ein paar wichtige wie z.B. das Modul zur Ansteuerung der GD Graphics Library sind nicht im Lieferumfang enthalten und fehlen auch im online Repository von ActiveState.

Glücklicherweise gibt es noch ein paar recht gut sortierte Repositories wie z.B. das der University Of Winnipeg, die sich darauf spezialisiert haben, die Lücken aufzufüllen.

Um nun das GD-Modul zu installieren, fügt man am sinnvollsten das passende Repository mittes “Edit” / “Preferences” dem Perl Package Manager hinzu:

Nach dem Synchonisieren der Paket-Datenbank kann dann unter “View all packages” das GD-Paket ausgewählt und installiert werden.