Moldawian: Installation des DBI-Moduls

Hi,
ich habe mir gerade die DBI.tar.gz von mysql.com runtergeladen und in den Unterordner "lib" von Perl extrahiert (mit "Pfadangaben verwenden"). Als ich es jetzt testen wollte kam aber die Fehlermeldung "DBI.pm can´t be located"...
Weiß einer von euch woran da liegen könnte?
Viele Grüße
Moldawian

  1. bei der ausführung von perl werden alle angegebenen mobule in den verzeichnissen:
    %perl%/lib
    und
    %perl%/site/lib
    gesucht. wird das modul dort dich gefunden, dann gibts 'ne fehlermeldung.
    abhilfe:
    ist das modul nicht in einen dieser verzeichnisse bzw. unterverzeichnisse (mußt du mal prüfen) dann kpiere bie binary des moduls einfach in eines dieser verzeichnisse. das hat bei mir bis jetzt immer gefunzt(ist aber nicht unbedigt die beste lösung; sollte eigendlich schon beim copalieren ins richtige verzeichnis gepackt werden. vielleicht noch mal die dokumentation zur installation lesen) ;)

    1. Hi,
      im ordner "perl/lib" ist es schon nur gibt es im unterordner dbi-1.18 nochmal einen Unterordner "lib". kann es sein, dass nur das was darin ist in /perl/lib kopiert werden muss?
      MfG
      Moldawian

      1. Hi,
        im ordner "perl/lib" ist es schon nur gibt es im unterordner dbi-1.18 nochmal einen Unterordner "lib". kann es sein, dass nur das was darin ist in /perl/lib kopiert werden muss?

        genau das solltest du mal tun ;-)

        MfG
        Moldawian

  2. Hallo,

    ich habe mir gerade die DBI.tar.gz von mysql.com runtergeladen und in den Unterordner "lib" von Perl extrahiert (mit "Pfadangaben verwenden").  Als ich es jetzt testen wollte kam aber die Fehlermeldung "DBI.pm can´t be located"...

    So einfach ist das nicht. Du solltest vor der Installation eines Moduls in jedem Fall die 'beiliegenden'Installationsanweisungen (README bzw. INSTALL) und die Dokumentation 'perlmodinstall' durchlesen.
    Der 'normale' Weg einer Modulinstallation läuft über eine Commandshell ab, und geht so:
    1.) *.tar.gz irgendwo lokal entpacken dann mit der Commandshell in das oberste gerade erzeugte Verzeichnis wechseln.
    2.) 'perl Makefile.PL' ausführen. Dies erzeugt eine Steuerdatei (Makefile), welche für den späteren Installationsprozeß aktuelle Systemgegebenheiten und lokale Perlspezifikationen berücksichtigt.
    3.) 'make' ausführen. [1] Dies erzeugt sämtliche Dateien, welche für die Installation notwendig sind und komiliert auch eventuell notwendige C-Bibliotheken des Moduls. [2]
    4.) 'make test' ausführen. Dadurch werden, falls vorhanden, grundlegende Tests ausgeführt, um die korrekte Funktion des Moduls zu überprüfen.
    5.) Sollte bis hier alles gut gegangen sein, dann ist noch 'make install' aufrufen, wodurch alle Dateien an den dafür vorgesehenen Ort kopiert werden.

    Das ist notwendig, da Perl auf jedem System etwas andere Verzeichnisstrukuren aufweist, bzw. bei C-Anteilen diese auch für das Zielsystem übersetzt werden müssen. Das einfach nur irgendwohin kopieren läuft dann nicht (immer).
    Für DBI brauchst Du für diesen Vorgang jedenfalls auch den C-Compiler.
    Um jedoch auf mySQL zugreifen zu wollen, benötigst Du neben DBI auch noch das DBD::mysql-Modul, welches Du übrigens, wie auch alle anderen Module, vom CPAN-Server http://www.cpan.org oder einem seiner Spiegelserver holen solltest, da nur so gewährleistet ist, daß Du auch die aktuelle Version benutzt.

    So, das wars in Kürze, genauer stehts in den oben genannten Quellen.
    Grüße
      Klaus

    [1] Unter Windows wird meist 'nmake' von Mikrosoft verwendet, das gibts (ausnahmsweise gratis) auf der MS-Downloadpage, bzw. ist im Lieferumfang von Visual-C. Also sämtliche 'make' sind in diesem Falle durch 'nmake' zu ersetzen.
    [2] Dafür ist jedoch ein geeigneter C-Compiler notwendig, was unter Unix im Normalfall kein Streß ist, unter Windows ist das jedoch etwas schwieriger. Da viele Binär-Distributionen von Perl auf Visual-C bestehen, das jedoch kostenpflichtig ist. Einzige mir bekannte Ausnahme ist die Cygwin-Umgebung, für die es auch ein vorkompiliertes Perl, das dann die Module mit dem gcc kompiliert. [3]
    [3] Allerdings gibt es für die verbreitete Activestate-Distribution bereits viele vorkompilierte Module, die dann mit 'ppm' leicht zu installieren sind. (siehe dazu die Activestate-Doku) Welche Module es bereits fertig von Activestate gibt, findest Du unter http://www.activestate.com/ppmpackages.

    1. Hi Klaus,
      das ist ja doch ein bisschen komplizierter als ich gedacht hab :-)
      Auf jeden Fall mal danke für deine Tipps. Ich hab mich jetzt dazu entschieden das ganze mit "ppm install DBI" (bzw. "ppm install DBD-mysql") zu machen, da kommt aber schon das nächste Problem: nach "Retrieving package DBI..." kommt immer der Fehler "not well-formed at line 1, column 17, byte 17 at C:/Programme/perl/site/lib/SOAP/Parser.pm line 73". Danach bricht die Installation ab und ich komme nicht weiter, weißt du woran das liegt?
      Viele Grüße
      Moldawian

      1. Hallo,

        nach "Retrieving package DBI..." kommt immer der Fehler "not well-formed at line 1, column 17, byte 17 at C:/Programme/perl/site/lib/SOAP/Parser.pm line 73". Danach bricht die Installation ab und ich komme nicht weiter, weißt du woran das liegt?

        Ich habs mal 'nachgeholt'. Irgenadwann gabs da mal ein Update vom ppm-Modul bzw. dem Zlib-Modul, aber ich kann mich nicht mehr erinnern, wo das zu finden war. Hmm.
        Jedenfalls, ich verwendete gerade  Build 623 und ppm 2.1.2.
        Vielleicht hilft Dir http://aspn.activestate.com/ASPN/Downloads/ActivePerl/PPM/ weiter.

        Grüße
          Klaus

        1. Hi,
          ich hab mir einfach das neueste ActivePerl runtergeladen und jetzt funktioniert´s. Danke!
          Viele Grüße
          Moldawian