Christoph Schnauß: Modul einbinden, zweitens

hallo Forum;-)

Zwar hatte ich gestern schon einmal nachgefragt, aber ich muss mein Problem doch nochmal etwas ausfuehrlicher schildern.

Ich moechte gerne das Modul Tk (Tk800.021) in meine Perl5.6-Installation in WINDOWS integrieren, kriege das aber nicht hin. Bekanntlich muss erst mit "perl Makefile.PL" ein makefile erzeugt und der vorhandene C-Code kompiliert werden. Und genau da haengt es zum erstenmal. Waehrend der Befehl ausgefuehrt wird, erscheint im DOS-Fenster eine lange Liste "Befehl oder Dateiname nicht gefunden", und am Ende gibt es einige Hinweise, dass die makefiles in den verschiedenen Unterverzeichnissen erzeugt wurden. Eigentuemlicherweise sagt das LOG auch aus:
"D:\Perl\bin\Perl.exe is installed in D:\Perl\lib okay
Unable to find a perl 5 (by these names: D:\Perl\bin\Perl.exe miniperl perl perl5 perl5.6.0, in these dirs: C:\ C:\WIN98 C:\WIN98\COMMAND D:\ D:\CCOMPILER\BIN D:\TCL\BIN D:\JAVA\BIN D:\PERL\BIN D:\Perl\bin)"
... also voellig gegensaetzliche Meldungen waehrend des Kompiliervorganges. Sie kommen dadurch zustande, dass die erste Meldung von "myConfig" erzeugt wird, die zweite allerdings von "..Perl/lib/ExtUtils/MM_Win32.pm".

Jetzt gibt es zwar neue makefiles, aber wenn ich eins mit "make makefile" aufrufe bzw. mit ppm einen Befehl eingebe, passiert gar nix bzw. gibt make ueber 160 Fehlermeldungen aus  -  das Modul ist schlicht und einfach nicht korrekt kompiliert. Leider gibt Windows keine genaueren Fehlermeldungen aus. Und der "query"-Befehl in ppm zeigt mir zwar ein paar Module, aber nicht Tk an, obwohl das Ding rund die Haelfte des gesamten Platzes von ../lib oder ../site/lib belegt. Ich habe nur einen einzigen Hinweis gefunden, mit dem ich aber nix anfangen kann: ">>> TK IS KNOWN NOT TO WORK WITH perl5.005_63 <<<
But does work with perl5.6.0 - although this required a couple of work-rounds
for perl5.6.0 ->isa bug."

Ich habe mir extra den letzten C/C++-Compiler von Borland geholt, weil ich dachte, dass vielleicht noch etwas damit kompiliert werden muesste, aber mit C/C++ komme ich noch nicht ganz zurecht.

Nun wollte ich sehen, ob ich unter LINUX wenigstens Fehlermeldungen bekomme und habe das Ganze auch mit LINUX probiert. Derselbe Vorgang: "perl Makefile.PL" bricht nach kurzer Zeit ab und meldet einen Fehler in der Datei myConfig. Also wenigstens ein Hinweis. Die Codezeile, die als fehlerhaft bemaengelt wird, ist ein "die"-Befehl, der so aufgerufen wird:

unless (defined $xinc)
    {
      warn "Cannot find X include files via $base/include\n";
      $xinc = &IX11(map("$_/include",@xdirs),
      '/usr/openwin/include',
      chooseX11(</usr/X11*/include>),
      chooseX11(</usr/include/X11*>),
      </usr/Xfree*/include>,
      '/usr/X386/include',
      $Config{'usrinc'});
    }

die "Cannot find X include files anywhere" unless (defined $xinc);

Selbstverstaendlich hat mein WINDOWS kein Verzeichnis /usr, und X ist auch nicht da (nur ein paar c- und h-files in ../Tk/pTk/mTk/xlib). Aber warum wird das dann auch mit LINUX nicht gemacht, wo es doch durchaus ein /usr-Verzeichnis und eine umfangreiche X-Installation gibt ???

Man kann noch bisschen herumsuchen, womit "$xinc" definiert werden koennte, aber das bringt nix. An den Fehlerausgaben sind auch wenigstens vier weitere Dateien beteiligt ...Aber auch das hat mich nicht weitergebracht. Die zahlreichen Readme's, die es gibt, gehen alle davon aus, dass "perl Makefile.PL" problemlos funktioniert hat, daher finde ich dort keinen Hinweis. Weiss jemand noch einen Rat ? Irgendwie bringt es die Installationsroutine bei S.u.S.E LINUX 6.4 doch fertig, das Modul zu integrieren, und mit LINUX macht es auch alles, was es soll ... Leider wirft Yast die makefiles wieder weg, so dass man nicht vergleichen kann, was drinsteht, wenn sie korrekt kompiliert wurden.

Christoph S.

  1. Hallo, die Module, welche Dir auf http://www.activestate.com/ppmpackages/5.005/zips/ zur Verüfgung stehen, werden mit "ppm" installiert. Zum Installieren von Modulen die auf CPAN erhältlich sind, brauchst Du unter windows anstelle von "make" das Proggi "nmake.exe", das bekommst Du bei MS, den genauen Pfad dahin hat glaube ich Timothy mal vor nicht allzu langer Zeit hier ins Forum gepostet; Viele Grüße, Rolf

    1. Hallo, die Module, welche Dir auf http://www.activestate.com/ppmpackages/5.005/zips/ zur Verüfgung stehen, werden mit "ppm" installiert. Zum Installieren von Modulen die auf CPAN erhältlich sind, brauchst Du unter windows anstelle von "make" das Proggi "nmake.exe", das bekommst Du bei MS, den genauen Pfad dahin hat glaube ich Timothy mal vor nicht allzu langer Zeit hier ins Forum gepostet; Viele Grüße, Rolf

      danke, ging ja fix ... allerdings ist _DAS_ noch gar nicht mein Problem. Egal, ob ich mit ppm oder mit nmake oder make arbeiten will, muss vorher mit "perl Makefile.PL" das makefile ueberhaupt erzeugt werden  -  damit mans dann mit einem der Befehle weiterverarbeiten kann. Und genau da haenge ich ja schon, wie beschrieben.
      Ich kuck erstmal nach, ob in der ZIP irgendwas andres drinsteckt als in der tar.zip von CPAN.

      Christoph S.

      1. Hallo,

        Ich kuck erstmal nach, ob in der ZIP irgendwas andres drinsteckt als in der tar.zip von CPAN.

        die Perl-Version 5.6...http://www.activestate.com/ppmpackages/5.6/zips/... hatte ich doch glatt übersehen; Rolf

      2. Hallo, die Module, welche Dir auf http://www.activestate.com/ppmpackages/5.005/zips/ zur Verüfgung stehen, werden mit "ppm" installiert. Zum Installieren von Modulen die auf CPAN erhältlich sind, brauchst Du unter windows anstelle von "make" das Proggi "nmake.exe", das bekommst Du bei MS, den genauen Pfad dahin hat glaube ich Timothy mal vor nicht allzu langer Zeit hier ins Forum gepostet; Viele Grüße, Rolf

        danke, ging ja fix ... allerdings ist _DAS_ noch gar nicht mein Problem. Egal, ob ich mit ppm oder mit nmake oder make arbeiten will, muss vorher mit "perl Makefile.PL" das makefile ueberhaupt erzeugt werden  -  damit mans dann mit einem der Befehle weiterverarbeiten kann. Und genau da haenge ich ja schon, wie beschrieben.
        Ich kuck erstmal nach, ob in der ZIP irgendwas andres drinsteckt als in der tar.zip von CPAN.

        Christoph S.

        Hallo Christoph,

        genau dasselbe Problem hab' ich auch im Moment.
        Leider habe ich auch noch keine Ahnung, wie man es löst.
        Die Sache mit dem ppm ist auch nicht immer das Wahre, weil avtivestate nicht alle Module hat, die im CPAN sind.
        Ein echtes Kreuz.

        Wenn Du die Lösung für das Problem gefunden hast, lass es mich wissen.

        Sven B.

      3. muss vorher mit "perl Makefile.PL" das makefile ueberhaupt erzeugt werden  -  damit mans dann mit einem der Befehle weiterverarbeiten kann.

        Hallo!
        Das verstehe ich nicht so richtig... Um unter Windows die Module von activestate zu installieren musst Du doch eigentlich nur den ppm (PerlPacketManager) starten (perl ppm.pl), dann kannst Du damit nach vorhanden Modulen  auf activestate suchen (z.B. mit "search tk") und dann gefundene installieren (install tk). Geht alles ganz wie von selbst und ohne eigene makefiles zu erzeugen o.ä., zumindest bei mir hat es vor 4 Tagen mit dem tk-Modul noch auf diese weise funktioniert.

        Gruß Torsten

        1. Das verstehe ich nicht so richtig... Um unter Windows die Module von activestate zu installieren musst Du doch eigentlich nur den ppm (PerlPacketManager) starten

          richtig. Aber ich hatte das Modul urspruenglich nicht von activestat geholt, sondern von CPAN (uebrigens dort die Version 800.021, bei activestat ist die Version 800.018 verfuegbar). Und dieses package bringt kein Tk.ppd mit, sondern viel mehr C-Code.

          Christoph S.