Juli 2010 Archive

Foo-Magazin-Titel

Heute ist die neue, 15. Ausgabe des Perl-Magazins $foo erschienen.

In eigener Sache vorab

Der Artikel "CPAN::Reporter - CPAN-Tester werden ist ganz einfach" ist leider bereits fast veraltet.

Zum Zeitpunkt der Drucklegung war noch nicht bekannt, dass die E-Mail-Schnittstelle der CPAN Tester zum 31.08.2010 abgeschaltet wird.

Der Artikel ist bereits überarbeitet und steht mit dem neuen Titel CPAN Tester 2.0 - CPAN Tester werden ist ganz einfach online zur Verfügung.

Ich bitte alle Leser um Entschuldigung für die Unannehmlichkeiten.

Die weiteren Artikel sind aber doch recht aktuell ;-))

Inhalt der 15. Ausgabe:

OTRS::CiCS

OTRS ist eines der meist benutzten Help-Desk-Systeme weltweit - und es ist in Perl geschrieben. Das System kann durch Zusatzmodule erweitert werden. Ein solches Zusatzmodul ist OTRS::CiCS. Torsten Thau stellt das Modul vor und geht auch auf das OTRS-Paketmanagement ein.

Shutter - Ein funktionsreiches Werkzeug zur Erstellung von Bildschirmfotos

Tools zur Erstellung von Screenshots gibt es viele - mal mit mehr, mal mit weniger Features. Shutter ist ein solches Tool - mit mehr Features. Mario Kemper zeigt, wie er mit Perl und Gtk2 das Programm entwickelt hat und stellt einige der Features vor.

Regex Debugging

Debugging ist nicht gerade die Lieblingsaufgabe von Programmierern und das Debuggen von Regulären Ausdrücken schon gar nicht. Dieser Artikel zeigt, wie man Reguläre Ausdrücke debuggen kann.

AI::CBR

Künstliche Intelligenz wird in den unterschiedlichsten Bereichen eingesetzt. Darko Obradovic gibt in diesem Artikel einen Einblick in die Methode des "Fallbasierten Schließens" (Case-Based Reasoning), die zur ähnlichkeitsbasierten Suche/Problemlösung verwendet werden kann.

Sauberer Namensraum mit namespace::clean

Durch das Exportieren von Subroutinen kann der Namensraum "zugemüllt" werden. Wie man mit dem Modul namespace::clean Ordnung halten kann, zeigt dieser Artikel.

WxPerl Tutorial - Teil 4

Der vierte Teil des WxPerl Tutorials von Herbert Breunung stellt die verschiedenen "Flächen" vor, auf denen die Widgets einer GUI angeordnet werden können.

Moose Tutorial - Teil 1

Moose verbessert die Objektorientierung von Perl enorm. In dieser Ausgabe startet ein mehrteiliges Tutorial dazu. Der erste Teil behandelt das Thema "Attribute mit Moose" ausführlich.

12. Deutscher Perl-Workshop

Herbert Breunung gibt einen Rückblick auf den 12. Deutschen Perl-Workshop, der Anfang Juni 2010 in Schorndorf stattfand.

... und vieles mehr

  • Neues von der TPF - was ist in den letzten 3 Monaten bei der TPF passiert?
  • CPAN-News - Wieder werden 6 neue Module vom CPAN vorgestellt
  • Termine - Was ist los in den nächsten 3 Monaten?

Siehe auch:

App::perlbrew - Manage perl installations in your $HOME von 劉康民 (Kang-min Liu) ermöglicht die einfache Installation (ohne root-Rechte) und Verwendung mehrerer Perls in unterschiedlichen Versionen und Konfigurationen in einem eigenem Verzeichnis.

Das noch sehr junge Projekt bietet eine einfache, leichtgewichtige Alternative zu den bekannten und bewährten Modulen local::lib und dem leistungsfähigerem Devel-PPPort - buildperl.pl - build/install perl distributions.

 

OSDC 2010 Lightning talk - Kang-min Liu perlbrew!

In diesem Video des Lightining Talks auf der OSCON 2010 stellt Kang-min Liu perlbrew kurz vor und erläutert warum er dieses Modul geschaffen hat.

 

Installation und grundlegende Konfiguration

App::perlbrew läßt sich entweder wie gehabt über die CPAN-Shell

cpan > install App::perlbrew

oder wie folgt

$ curl -LO http://xrl.us/perlbrew
$ chmod +x perlbrew

installieren. Anschließend steht das Kommandozeilen-Tool perlbrew zur Verfügung.

Die grundlegende Konfiguration erfolgt über die Option init - alle erforderlichen Dateien und Verzeichnisse werden als Default im Heimatverzeichnis im Ordner ~/perl5/perlbrew angelegt.

$ perlbrew init
 
 Perlbrew environment initiated, required directories are created under

     /home/bob/perl5/perlbrew

  Well-done! Congratulations! Please add the following line to the end
 of your ~/.bashrc

     source /home/bob/perl5/perlbrew/etc/bashrc
 ...

Wer perlbrew in ein anderes Verzeichnis installieren möchte, setzt dazu die Umgebungsvariable PERLBREW_ROOT:

$ export PERLBREW_ROOT=/opt/perlbrew
$ perlbrew install

Nach dem die o.g. Änderungen in der Datei ~/.bashrc ausgeführt wurden, aus der Shell abmelden und erneut einloggen, damit die Änderungen wirksam werden.

 

Mehrere Perls installieren

Mittels perlbrew install kann ein neues Perl installiert werden. Optionen, welche die Konfiguration des neuen Perls beeinflußen, werden über den Schalter -D= eingestellt. Die möglichen Optionen lassen sich der Datei INSTALL des jeweiligen Perls entnehmen.

Hier ein Perl 5.12.1 mit Threads:

$ perlbrew install perl-5.12.1 -D=usethreads

 Attempting to load conf from /home/bob/perl5/perlbrew/Conf.pm
 Fetching perl-5.12.1 as /home/bob/perl5/perlbrew/dists/perl-5.12.1.tar.gz
 Installing perl-5.12.1 into /home/bob/perl5/perlbrew/perls/perl-5.12.1
 This could take a while. You can run the following command on another shell to track the status:

  tail -f /home/bob/perl5/perlbrew/build.log

 (cd /home/bob/perl5/perlbrew/build; tar xzf /home/bob/perl5/perlbrew/dists/perl-5.12.1.tar.gz;cd /home/bob/perl5/perlbrew/build/perl-5.12.1;rm -f config.sh Policy.sh;sh Configure -de -Dprefix=/home/bob/perl5/perlbrew/perls/perl-5.12.1 -Dusethreads;make;make test && make install) >> '/home/bob/perl5/perlbrew/build.log' 2>&1 

 Installed perl-5.12.1 as perl-5.12.1 successfully. Run the following command to switch to it.

  perlbrew switch perl-5.12.1

Hier ein Perl 5.12.1 mit Standard-Optionen, also ohne Threads - über den Schalter -as wird ein passender Name für dieses Perl gewählt.

$ perlbrew install perl-5.12.1 -as perl-5.12.1-nothreads

 Attempting to load conf from /home/bob/perl5/perlbrew/Conf.pm
 Use the previously fetched perl-5.12.1.tar.gz
 Installing perl-5.12.1 into /home/bob/perl5/perlbrew/perls/perl-5.12.1-nothreads
 This could take a while. You can run the following command on another shell to track the status:

   tail -f /home/bob/perl5/perlbrew/build.log

 (cd /home/bob/perl5/perlbrew/build; tar xzf /home/bob/perl5/perlbrew/dists/perl-5.12.1.tar.gz;cd /home/bob/perl5/perlbrew/build/perl-5.12.1;rm -f config.sh Policy.sh;sh Configure -de -Dprefix=/home/bob/perl5/perlbrew/perls/perl-5.12.1-nothreads;make;make test && make install) >> '/home/bob/perl5/perlbrew/build.log' 2>&1 
 Installed perl-5.12.1 as perl-5.12.1-nothreads successfully. Run the following command to switch to it.

  perlbrew switch perl-5.12.1-nothreads
 

Hier ein Perl 5.12.1 mit Standard-Optionen, also ohne Threads, aber mit Debugging-Informationen.

$ perlbrew install perl-5.12.1 -D=DEBUGGING=both -as perl-5.12.1-nothreads-debug
 
 Attempting to load conf from /home/bob/perl5/perlbrew/Conf.pm
 Use the previously fetched perl-5.12.1.tar.gz
 Installing perl-5.12.1 into /home/bob/perl5/perlbrew/perls/perl-5.12.1-nothreads-debug
 This could take a while. You can run the following command on another shell to track the status:

  tail -f /home/bob/perl5/perlbrew/build.log

 (cd /home/bob/perl5/perlbrew/build; tar xzf /home/bob/perl5/perlbrew/dists/perl-5.12.1.tar.gz;cd /home/bob/perl5/perlbrew/build/perl-5.12.1;rm -f config.sh Policy.sh;sh Configure -de -Dprefix=/home/bob/perl5/perlbrew/perls/perl-5.12.1-nothreads-debug -DDEBUGGING=both;make;make test && make install) >> '/home/bob/perl5/perlbrew/build.log' 2>&1 

 Installed perl-5.12.1 as perl-5.12.1-nothreads-debug successfully. Run the following command to switch to it.

  perlbrew switch perl-5.12.1-nothreads-debug

Hier ein Perl 5.12.1 mit Threads und Debugging-Informationen.

$ perlbrew install perl-5.12.1 -D=DEBUGGING=both -D=usethreads -as perl-5.12.1-debug
 
 Attempting to load conf from /home/bob/perl5/perlbrew/Conf.pm
 Use the previously fetched perl-5.12.1.tar.gz
 Installing perl-5.12.1 into /home/bob/perl5/perlbrew/perls/perl-5.12.1-debug
 This could take a while. You can run the following command on another shell to track the status:

   tail -f /home/bob/perl5/perlbrew/build.log

 (cd /home/bob/perl5/perlbrew/build; tar xzf /home/bob/perl5/perlbrew/dists/perl-5.12.1.tar.gz;cd /home/bob/perl5/perlbrew/build/perl-5.12.1;rm -f config.sh Policy.sh;sh Configure -de -Dprefix=/home/bob/perl5/perlbrew/perls/perl-5.12.1-debug -DDEBUGGING=both -Dusethreads;make;make test && make install) >> '/home/bob/perl5/perlbrew/build.log' 2>&1 
 Installed perl-5.12.1 as perl-5.12.1-debug successfully. Run the following command to switch to it.

   perlbrew switch perl-5.12.1-debug

 

Zwischen den verschiedenen Perls hin- und herschalten

Zunächst werfen wir einen Blick auf das System-Perl:

$ perl -v

This is perl, v5.10.1 (*) built for i486-linux-gnu-thread-multi

Ein Übersicht aller installierten Perls liefert die Option installed

$ perlbrew installed
 perl-5.12.1
 perl-5.12.1-debug
 perl-5.12.1-nothreads
 perl-5.12.1-nothreads-debug
 /usr/bin/perl

Über die Option switch kann auf ein anderes Perl umgeschaltet werden. Da perlbrew die Umgebungsvariable PATH verändert, ist es zwingend erforderlich, die Shell über diese Änderung per hash -r (manchmal auch rehash) zu informieren.

$ perlbrew switch perl-5.12.1
$ hash -r 
$ perl -v

 This is perl 5, version 12, subversion 1 (v5.12.1) built for i686-linux-thread-multi

Zurück zum System-Perl gelangt man über die Option off:

$ perlbrew off
$ hash -r
$ perl -v

This is perl, v5.10.1 (*) built for i486-linux-gnu-thread-multi

 

CPAN-Module installieren

Wie bereits erwähnt, verändert perlbrew beim Switchen die Umgebungsvariable PATH und setzt zusätzlich das richtige cpan-Programm in diesen Pfad.

$ perlbrew switch perl-5.12.1-nothreads
$ hash -r

$ cpan 
cpan> install YAML
...
Appending installation info to /home/bob/perl5/perlbrew/perls/perl-5.12.1-nothreads/lib/5.12.1/i686-linux/perllocal.pod
cpan> quit

$ perlbrew off
$ hash -r

oder auch:

$ perlbrew switch perl-5.12.1-nothreads
$ hash -r

$ perl -MCPAN -e shell 
...

 

That's it.

 

Siehe auch

 

Das CPAN Testers Project möchte möglichst viele CPAN-Module auf möglichst vielen Plattformen testen. Diese Testergebnisse bieten CPAN-Autoren und Nutzern wertvolles Feedback und helfen die Qualität der CPAN-Module zu verbessern und somit den Wert des CPAN zu erhöhen.

Dank des CPAN-Moduls CPAN::Reporter von David Golden kann jeder, der ein Modul auf seinem Rechner installiert, einen Test-Report automatisch erzeugen und zu den CPAN-Testern übermitteln.

Wegen des starken Wachstums des CPAN-Testers Projects in den letzten Jahren ist eine neue leistungsfähige skalierbare Lösung erforderlich.

Seit dem 5. Juli 2010 steht CPAN Testers 2.0 zur Verfügung.

Die wesentlichen Neuerungen:

  • Test-Reports können auch über HTTP eingereicht werden.
  • Test-Reports, Tester und Distributionen werden über eine Meta-Datenbank verwaltet

Die alte Schnittstelle über SMTP wird am 31.08.2010 eingestellt.

 

Installation

CPAN::Reporter benötigt das Modul CPAN ab Version 1.9301 und weitere Module, wie z.B. Module::Build, in möglichst aktuellen Versionen - hier bietet sich ein allgemeines Update via Bundle::CPAN an. Weiterhin werden Module für den neuen Transportmechanismus über HTTP benötigt.

 cpan> install Bundle::CPAN
 cpan> reload CPAN
 
 cpan> install CPAN::Reporter
 cpan> install Test::Reporter
 cpan> install Test::Reporter::Transport::Metabase
 cpan> install Metabase::Client::Simple
 cpan> install Metabase::Fact
 

 

Konfiguration

Die Konfiguration erfolgt in zwei Schritten.

Im ersten Schritt werden einige einfache Fragen beantwortet und daraus eine grundlegende Konfiguration erzeugt.

 cpan> o conf init test_report

Zunächst wird festgelegt, ob die Testergebnisse zu den CPAN Testern versandt werden sollen.

 
 Email test reports if CPAN::Reporter is installed (yes/no)? [no] yes

 Would you like me configure CPAN::Reporter now? [yes] yes

Falls ja wird als nächstes die E-Mail Adresse des Test Reporters abgefragt. Wer über eine PAUSE-ID verfügt, trägt bitte die dort hinterlegte E-Mail-Adresse (pauseid@cpan.org) ein; ansonsten ist jede gültige Adresse okay.

 email_from? [] "Vorname Nachname" <e-mail@adresse.tld>

Die Testergebnisse wurden bisher an die Mailserver von perl.org gesandt werden. Da der Versand jetzt über HTTP erfolgt, bleibt dieses Feld einfach leer.

 smtp_server? [] 

Die Testergebnisse können vor dem Versand noch mit einem Editor bearbeitet werden. Als Tester kann man hier noch Hinweise für den Autor einfügen. Die vorgeschlagene Standardkonfiguration sendet die Reports im Erfolgsfall automatisch und fragt im Misserfolgsfall nach, ob der Report vor dem Versand editiert werden soll.

 edit_report? [default:ask/no pass/na:no] 

Nun muss die Konfiguration noch gespeichert werden.

 cpan> o conf commit

Die Konfigurationsdatei config.ini befindet sich im Heimatverzeichnis des aktuellen Benutzers im Unterverzeichnis .cpanreporter und kann mit einem beliebigen Text-Editor bearbeitet werden.

edit_report=default:ask/no pass/na:no
email_from="Thomas Fahle" <cpan@thomas-fahle.de>
send_report=default:ask/yes pass/na:yes

In diese Datei wird nun als zweiter Schritt der neue Transportmechanismus von Hand eingetragen.

email_from="Thomas Fahle" <cpan@thomas-fahle.de>
send_report=default:ask/yes pass/na:yes
edit_report=default:ask/no pass/na:no
transport = Metabase uri http://metabase.cpantesters.org/beta/ id_file /home/tf/.cpanreporter/metabase_id.json

Der Transportmechanismus erwartet eine Profildatei (id_file) mit einem Shared Secret.

Dieses Profil dient z.B. zu richtigen Zuordnung der Tests und Tester im CPAN Testers Leaderboard.

Wer bereits Tests zu den CPAN-Testern geliefert hat, erhält eine vorgefertigte Profildatei nach Anforderung per E-Mail.

Neue Tester (m/w) können die Profildatei einfach mit dem Kommandozeilentool metabase-profile erstellen:

$ metabase-profile

Enter full name: Thomas Fahle
Enter email address: cpan@thomas-fahle.de
Enter password/secret: 1234567890

Writing profile to 'metabase_id.json'

Diese Datei wird nun im Verzeichnis ~./cpanreporter abgelegt.

Da in dieser Datei das Passwort im Klartext steht, sollte man zu mindestens die Rechte für den Zugriff auf die Datei und auf das Verzeichnis .cpanreporter einschränken, z.B. chmod 600 metabase_id.json.

 

Hinweis zur Privatsphäre

Testberichte enthalten Informationen über das Testsystem, wie Umgebungsvariablen, Betriebssystem, installierte Bibliotheken usw.

Wer sich Sorgen um die Privatsphäre macht, sollte die Berichte zuvor editieren. Die dazu passende Konfiguration:

 edit_report=default:ask/yes pass/na:yes

 

Werde CPAN-Tester

Es ist wirklich einfach CPAN-Test-Reporter zu sein. Je größer das Netzwerk der Tester, um so besser. Werde CPAN-Test-Reporter.

 

Siehe auch

Über dieses Archiv

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

Juni 2010 ist das vorherige Archiv.

August 2010 ist das nächste Archiv.

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

Blog Roll

Powered by

Powered by Movable Type 5.2.10

Creative Commons-Lizenz

Creative Commons License
Dieses Weblog steht unter einer Creative Commons-Lizenz.