You are here: Wissensbasis Web>PerlTipps>SporkPortierung (2004-09-30)

Spork auf ActivePerl

Vorwort

Ich möchte kurz eine kleine Anleitung bzw. Einleitung geben wie man http://search.cpan.org/search?query=Spork&mode=all Spork unter ActivePerl zum laufen bekommt, da dabei ein paar Änderungen erforderlich sind. Außerdem ist es auch ganz hilfreich zu wissen welche Abhängigkeiten benötigt werden bzw. in welcher Reihenfolge sie installiert werden müssen.

Voraussetzungen

Auf dem von mir beschriebenen System (Windows XP Home Edition) ist ActivePerl von ActiveState in der Version 5.8.0 installiert. Des weiteren ist das Linux-Enviroment CygWin installiert. Außerdem ist eine make Implementierung für Windows namens http://support.microsoft.com/default.aspx?scid=kb;en-us;Q132084 nmake in einem Pfad installiert der auch in der Path-Variable aufgelistet ist.

Installation

Alle Benötigten Module sind von CPAN zu erhalten.

Module:
  1. http://search.cpan.org/search?query=Spiffy&mode=all Spiffy
  2. http://search.cpan.org/search?query=IO::All&mode=all IO::All
  3. http://search.cpan.org/search?query=Template&mode=all Template
  4. http://search.cpan.org/search?query=Spoon&mode=all Spoon
  5. http://search.cpan.org/search?query=Kwiki&mode=all Kwiki
  6. http://search.cpan.org/search?query=Spork&mode=all Spork

Alle Module müssen mit der etwas an Windows angepasste Standard-Vorgehensweise wie auf CPAN beschrieben installiert werden:
tar -xf Modul.tar.gz
cd Modul
perl Makefile.PL
nmake
nmake test
nmake install

Anpassung von Modulen

Das Modul Spork::Formatter greift auf die Funktion abs_path aus dem Modul Cwd zurück, welches jedoch bei dieser Funktion Portierungsprobleme aufweist. Wir verwenden deshalb behelfsweise FindBin, was im weitesten Sinne das macht was wir brauchen. Der Abschnitt aus Spork/Formatter.pm muss wie folgt abgeändert werden:
sub html {
    require FindBin;#require Cwd;
    my ($file, $link_text) = split /\s+/, $self->arguments, 2;
    $link_text ||= $file;
    $file = $self->hub->config->file_base . "/$file"
      unless $file =~ /^\.{0,1}\//;
    $file = $FindBin::Bin . "/$file";#$file = Cwd::abs_path($file);
    qq{<a href="file://$file" } . 
      'target="file" style="text-decoration:underline">' . 
      $link_text . '</a>';
}

Desweiteren sind die Systemaufrufe um Bilder aus dem Internet downzuloaden noch auf *NIX-Dateisystem ausgerichtet. Der Abschnitt aus Spork/Slides.pm muss wie folgt abgeändert werden:
sub lwp_download {
    my $self = shift;
    my ($image_url, $image_file) = @_;
    system "lwp-download $image_url";
}

Die erste Presentation

Nun erstellen wir uns mit spork -new in einem Verzeichnis alle für eine Presentation erforderlichen Dateien. Nun müssen wir noch ein paar Anpassungen der Config-Datei config.yaml machen damit wir keine Problem bei der Erstellung haben:
  • download method stellen wir auf lwp da nicht über all wget installiert ist.
  • start command stellen wir auf start slides/start.html damit man die Presentation auch von der Konsole aus starten kann.

Alle andern Anpassungen der Datei config.yaml und Spork.slides müssen nach Anleitung vorgenommen werden.

Danach erstellen wir mit spork -make alle HTML-Slides. Dieser Vorgang sollte ohne Fehler verlaufen wenn alles richtig eingestellt wurde.

Dann kann mit spork -start die Presentation im Standard-Browser gestartet werden.

Rückfragen

Bei Rückfragen stehe ich gern zur Verfügung.

-- AlexKoeppe - 19 Sep 2004
Topic revision: 2004-09-30, AlexKoeppe
 
Bitte die NutzungsBedingungen beachten.
Bei Vorschlägen, Anfragen oder Problemen mit dem PerlCommunityWiki bitten wir um WebBottomBarExample">Rückmeldung.