Michael Schröpl: Forum nur für Eingeweihte???

Beitrag lesen

Vielleicht kannst Du mir (also für Perl-Anfänger) ja mal erklären, wo genau der Unterschied zwischen einem installierten Modul und denen im CPAN-Archiv ist. Sie sehen ja zunächst sehr gleich aus.

Der Punkt ist gar nicht, daß etwa die Module unterschiedlich wären - das sind sie normalerweise gar nicht. (Während der Installation ruft das CPAN-Skript aber in Einzelfällen den C-Compiler auf, deshalb möchte ich hier keine absolute Aussage treffen ...)
Vielmehr liefert CPAN Dir ein Installationsverfahren mit, das eine Reihe von Dingen für Dich erledigt.

Da wäre als erstes mal, herauszufinden, *wohin* ein Modul installiert werden muß, damit er später ohne Änderung des Quelltextes in einem Skript gefunden werden kann. Dazu gibt es das Makefile.PL-Skript: Das prüft, wo der Perl-Interpreter installiert ist und wo seine Verzeichnisse für solche Module liegen.
Mit diesen Informationen generiert es dann ein Makefile, welches die richtigen Installationsbefehle enthält.

Andererseits gibt es zahlreiche Module, welche selbst wiederum Funktionen oder Objekte aus anderen Modulen verwenden. Die CPAN-Routine kennt diese Abhängigkeiten und kann deshalb prüfen, ob alle notwendigen Voraussetzungen erfüllt sind; wenn nicht, dann bekommst Du klare Meldungen, was vorher noch alles zu installieren ist. (LWP::Simple hängt beispielsweise von vier anderen Module ab!)
Das ist die Funktion von "make".

Nicht zuletzt könnte auch noch der Perl-Interpreter einen Schuß haben, oder die vorher installierten Module, oder das Betriebssystem oder was auch immer.
Deshalb führt das CPAN-Installationsverfahren vor dem Installieren noch einen "sanity"-Test durch, d. h. es läßt eine Reihe von Test-Skripten mit Aktionen, für die der Inhalt des gerade zu installierenden Moduls benötigt wird, laufen und prüft die Ergebnisse gegenüber den Ergebnissen, die im "CPAN-Labor" erzielt wurden.
Das ist die Funktion von "make test".

Wenn alles übereinstimmt, dann ist die Chance, daß trotzdem irgendwas nicht funktioniert, minimal - und *dann* kann als letzter Schritt der neue Perl-Modul ins site-lib-Verzeichnis von Perl kopiert werden. Nebenbei werden noch ein paar andere Dinge mit kopiert (z. B. man pages oder Dokumentationsdateien in anderen Formaten).
Das ist die Funktion von "make install".

Ein Installationsverfahren in dieser hohen Qualität ist m. E. die Voraussetzung dafür, daß Quelltexte auf beliebig vielen Rechnern verschiedener Betriebssysteme verwendbar sind - und das in einer Art und Weise, die im Anwender das Vertrauen hervorruft, daß es auch wirklich funktioniert.
CPAN leistet in dieser Hinsicht genau das, was für GNU-Software wie Apache oder Emacs das "configure"-Skript tut.

Oder kann ich auch die lokalen Module (Windows) für den Unix-Server benutzen???

In den meisten Fällen sollte das gehen, denn es sind ja alles Perl-Quelltexte.
Du mußt halt nur selbst herausfinden, wie man sie installiert. Und Du kannst Dich nicht darauf verlassen, daß sie funktionieren werden, weil eventuell andere Dinge fehlen, von deren Existenz die Funktionsfähigkeit der Module abhängt - *solche* Fehler später zu finden kann dann etwas tricky sein.