Dezember 2008 Archive

Wie kann ich CPAN-Module wieder entfernen bzw. deinstallieren? Auf den ersten Blick ist das einfach: einfach die betreffenden .pm-Dateien löschen, schon ist das Modul weg.

Aber was ist mit eventuellen weiteren Dateien oder Distributionen, die aus vielen Modulen bestehen? Oder mit Modulen mit in mehreren Verzeichnissen verstreuten Dateien?

Dafür bietet CPANPLUS bzw. dessen Shell cpanp das Uninstall-Kommando. Dies entfernt alle installierten Komponenten eines Modules. Dazu bedient es sich der .packlist-Dateien, die in <perllib>/<architektur>/auto/<modulname> abgelegt werden und eine Liste aller installierten Komponenten enthalten.

CPANPLUS wird ab Perl 5.10 mitgeliefert, in älteren Versionen lässt es sich ganz normal via CPAN nachinstallieren.

Die Liste der Vorträge mitsamt dem vorläufigen Zeitplan für den 11. Deutschen Perl-Workshop vom 25. bis 27. Februar 2008 in Frankfurt steht fest.

Insgesamt sieht es wieder sehr interessant aus: für die Terminal-Fetischisten gibt es einen Vortrag zu Vim als Entwicklungsumgebung, für die GUI-Fetischisten eine Einführung in Padre, die neue Entwicklungsumgebung für Perl (Thomas Fahle hat sie vor ein paar Tagen genauer vorgestellt). Ein Vortrag zu Testing darf natürlich nicht fehlen, ebenso wenig Berichte über konkrete Perl-Projekte wie ein Hochverfügbarkeits-SMS-Gateway bei Siemens.

Und zudem konnten wir Andreas Scherbaum gewinnen, ein PostgreSQL-Tutorial zu halten. Leider werde ich dies nicht anschauen können, da ich im Parallel-Tutorial Vorschläge machen werde, wie man sich vor dem Psychopathen mit der Kettensäge schützt.

Was ist der Deutsche Perl-Workshop?

Der Deutsche Perl-Workshop ist, wie auch die Perl-Workshops in anderen Ländern, quasi die Deutsche Perl-Konferenz und findet 2009 zum 11. mal statt – dieses mal organisiert von den Frankfurter Perl Mongers. Ich kann jedem, der mit Perl arbeitet, empfehlen mit dabei zu sein. Die Kosten stehen zwar noch nicht sicher fest, werden aber wie immer sowohl für Privatpersonen als auch für Firmenkunden sehr moderat sein (2008 waren es: 50 Euro für Schüler/Studenten, 75 Euro Normalpreis und 250 Euro für Firmenteilnehmer für alle drei Tage zusammen).

Anmeldung ist noch nicht möglich, wird aber bald nachgeholt.

Ein häufiges Problem: auf dem Entwicklungssystem hat man ein Perl zum Beispiel unter /usr/local/bin/perl installiert, und ein Programm soll ganz normal mit ./programm.pl gestartet werden.

Kein Problem, da passt man die Shebang-Zeile einfach entsprechend an:

#!/usr/local/bin/perl

use strict;
use warnings;

use Projekt::App;

Projekt::App->run(@ARGV);

 

Auf dem Produktionssystem liegt das Skript aber unter /usr/bin/perl oder /usr/local/projekt/perl/bin/perl. Ein Leser fragte nun: Was tun?

TIMTOWDI, es gibt mindestens zwei Möglichkeiten:

 

Richtiges Perl zur Laufzeit finden mit env

Das Programm env(1), auf nahezu jedem Unix/Linux-System vorhanden, kann ein Programm im aktuellen Pfad PATH suchen und entsprechend starten. Das kann man dann in die Shebang-Zeile aufnehmen.

#!/usr/bin/env perl

use strict;
use warnings;

use Projekt::App;

Projekt::App->run(@ARGV);

 

env hat noch eine reihe weiterer Optionen, so kann man eine Auswahl an Suchpfaden vorgeben und so weiter. Näheres sagt die Dokumentation zu env.

 

Der Perlige Weg mit Module::Build

Allgemein bietet sich der Einsatz von Module::Build meistens sowieso an. Wenn man dann auf dem Zielsystem die Applikation mit ./Build install installiert, werden nicht nur die Module in die richtigen (oder angegebenen) Verzeichnisse kopiert, sondern alle Skripte in bin/, die Perl in der Shebang-Zeile starten, aufs jeweils aktuelle Perl angepasst und installiert. Aus dem ersten Beispiel oben wird dann, so dass es auch funktioniert, wenn es als Shell-Skript ausgeführt wird:

#!/opt/local/bin/perl

eval 'exec /opt/local/bin/perl -S $0 ${1+"$@"}'
if 0; # not running under some shell


use strict;
use warnings;

use Projekt::App;

Projekt::App->run(@ARGV);

Unter Windows werden dann sogar gleich passende .bat-Dateien angelegt, mit denen das jeweilige Skript gestartet wird.

Der Unterschied zwischen den beiden Versionen ist im Wesentlichen, dass bei der Verwendung von env der jeweilige Nutzer bzw. Aufrufer mit seinem PATH den Perl-Interpreter bestimmt, während bei Module::Build dies von demjenigen, der das Skript/Programm installiert hat bestimmt wurde. (danke, tinita, für den Hinweis)

Bei Verwendung von ExtUtils::MakeMaker klappt das übrigens auch, aber man sollte bei neuen Projekten lieber Module::Build nutzen.

 

Nach dem Update auf Movable Type 4.2 habe ich das TypePad AntiSpam Plugin aktiviert bzw. mit einem API-Key freigeschaltet.

Nur: weder Kommentare noch Trackbacks wurden geprüft, stattdessen landere im Aktivitätslog jeweils eine Fehlermeldung: TypePad AntiSpam error: Bad Request.

Leider nicht sehr aussagekräftig, und via Suchmaschinen ließ sich auch nichts passendes finden.

Über den Source bin ich dann auf die Lösung gekommen:

$agent->post("http://$key.$SERVICE_HOST/$API_VERSION/$meth", [%ENV, %$sig]);

„Bad Request“ sieht nach einer LWP-Fehlermeldung zu einem kaputten Request aus, zum Beispiel fehlendes Protokoll oder Domain mit unerlaubten Zeichen. Und da alle relevanten Elemente außer dem API-Key Konstanten sind, lag es nahe den Fehler bei diesem zu suchen.

Und tatsächlich: beim Kopieren des Keys hat sich ein Leerzeichen eingeschlichen, und ein Leerzeichen ist nunmal kein gültiges Zeichen in einem Domainname. Also: Aufpassen und keine Leerzeichen mitkopieren!

Nach der Korrektur funktioniert alles und sowohl Kommentare als auch Trackbacks werden geprüft. Jetzt bin ich mal gespannt, ob es besser klappt als mit Akismet, das gelegentlich Spam-Trackbacks nicht erkannte und die Basiserkennung von Movable Type überstimmte. TechCrunch hat auf jeden Fall ganz gute Erfahrungen gemacht.

Gestern habe ich auch endlich mal Movable Type auf 4.23 aktualisiert. Ich hatte mit dem Update auf die 4.2er Serie lange gewartet, weil ich mir ein bisschen Zeit nehmen wollte – aber es lief problemlos und ohne jegliche Frickelei.

Neben aufgeräumteren Templates ist vor allem die neue Option praktisch, Server Side Includes für einzelne Template-Blöcke zu nutzen. Damit lassen sich auch bei statischer Veröffentlichung einzelne Bereiche dynamisch einblenden. So habe ich hier die Liste der aktuellen Einträge und Kommentare sowie Tag-Wolke, Kategorien und Monatsarchive via SSI eingebunden. Damit wirkt sich die Aktualisierung eines Blockes gleich auf alle bereits generierten Seiten aus, ohne dass alles dynamisch generiert werden muss.

Auch ansonsten bietet 4.2 einige Neuerungen, so gibt es endlich die Möglichkeit für eine Thread-Ansicht bei den Kommentaren (habe ich aber noch nicht probiert), verbesserte und vereinfachte Templates und einiges mehr. Weitere Informationen zu den Neuerungen in MT 4.2.

 

Entlassungen bei Six Apart

Bei Six Apart, dem Hersteller von Movable Type, wurden etwa 8% der Mitarbeiter entlassen, darunter auch Byrne Reese, Produktmanager von Movable Type. Wenn aber bei über 200 Mitarbeitern bei der ersten Entlassungswelle gleich der Produktmanager eines wichtigen Produktes gehen muss, verwundert das doch ...

Welche Auswirkungen das auf Movable Type haben wird ist sicherlich noch nicht klar. Die Entlassungen beruhen wohl auf einer internen Umstrukturierung hin zum Dienstleistungsgeschäft und „Proaktiven“ Handlungen trotz bisher gut laufenden Geschäften. Hoffen wir, dass Movable Type darunter nicht leidet.

Microsoft und (Strawberry-)Perl gehen eine Partnerschaft ein, wie man so schön sagt: Adam Kennedy berichtet, dass Microsoft jedem CPAN-Autor kostenlosen Zugang zu zentral gehosteten Virtuellen Maschinen mit allen wichtigen Windows-Versionen ermöglicht.

Damit wird der Perl-Community ermöglicht, ohne Kosten und Installations-Aufwand Module auf diversen Windows-Versionen zu testen und debuggen. Es ist also nicht nur wie bei den Smoke-Tests möglich, die beim Modul mitgelieferten Tests durchlaufen zu lassen, sondern auch ein lokales Entwickeln und Debuggen wird möglich. Obwohl ich nach Möglichkeit nicht mit Windows arbeite, halte ich dies für eine sehr gute und sehr wichtige Sache.

Im ersten Schritt werden nur eine Hand voll Windows-Versionen aus der XP- und Vista-Reihe zur Verfügung stehen, aber laut Adam sollen es mehr werden. In den nächsten Tagen sollen ihm die Admin-Passwörter übergeben werden, und dann kann es losgehen. Potentiell 7000 Autoren können das System nutzen, es ist also kein Kleinkram, auch wenn nur ein Teil davon dieses Angebot tatsächlich nutzen wird.

 

Und letztendlich können beide Seiten davon profitieren: Perl wird gestärkt, wenn möglichst viele Module problemlos auch unter Windows laufen, denn in vielen Firmen herrscht zumindest auf dem Desktop immer noch eine Windows-Monokultur. Und Microsoft profitiert von einer besseren Windows-Unterstützung, da dies langfristig möglicherweise weniger Nutzer zu Linux, *BSD oder OS X treibt.

Hoffen wir, dass das Angebot von den CPAN-Autoren auch angenommen wird!

Aktuelle Kommentare

  • Niels Dettenbach: ...schade eigentlich, das es PyPerl nicht mehr wirklich gibt. Zwar weiter lesen
  • Alvar Freude: Kannte ich noch nicht, danke für den Hinweis; allerdings ist weiter lesen
  • Ben Sieverts: Ich vermisse noch folgendes Buch auf der List: Effective Perl weiter lesen
  • Alex: Ich schlage einfach mal ganz unverschämt bei diesem Beitrag die weiter lesen
  • Marcel: Oke, danke für den Tipp. Schade natürlich. Wird euer Buch weiter lesen
  • Alvar: Nein, leider ist das noch nicht fertig. :-( Es gibt weiter lesen
  • Marcel : Hallo! gibt es dein Buch zu Perl6 schon? Wo kann weiter lesen
  • air max 2009: Nimm ein Paradigma deiner Wahl (z.b. MVC) und lerne Applikationscode weiter lesen
  • vTasker: Was ist das denn für ein MIST? Der Artikel ist weiter lesen
  • Virenschutz-Test: Das ist ja lustig hihi. Der Admin ist wohl nicht weiter lesen

Über dieses Archiv

Diese Seite enthält alle Einträge von Perl-Blog von neu nach alt.

November 2008 ist das vorherige Archiv.

Januar 2009 ist das nächste Archiv.

Aktuelle Einträge finden Sie auf der Startseite, alle Einträge in den Archiven.