Installation von Perl-Modulen und MySQL
Sandra Lill
- datenbank
Hallo,
ich stehe hier vor einem Berg von Problemen und hoffe, dass mir jemand bei den ersten Schritten helfen kann.
Grob gesagt geht es um die Installation von MySQL und von Perl Modulen (DBI).
Dazu moechte ich anmerken, dass ich zwar schon einige Erfahrung im Umgang mit Datenbanken (bisher Oracle) und Perl Skripten habe, aber bisher noch nie ein Programm unter Linux installiert habe.
Ich arbeite mit SUSE Linux 6.2 (i386). Auf diesem System ist Perl bereits installiert, aber ich vermute, dass das DBI Modul nicht vorhanden ist.
Zunaechst zur Installation von MySQL:
Ich bin der Installationsanleitung gefolgt, aber an dem Punkt, wo es um Perl geht komme ich nicht weiter.
Da steht, man soll im Verzeichnis /usr/local/mysql/perl/DBI den Befehl 'perl Makefile.PL' ausfuehren.
Mein Problem: das Verzeichnis /usr/local/mysql hat kein Unterverzeichnis 'perl'. Woran kann das liegen?
(Sonst scheint MySQL gut zu funktionieren, habe auch keine Zugriffsprobleme)
Mir kam dann der Gedanke, dass das DBI Modul unter Perl vielleicht schon vorab installiert sein muss???
Fragen:
Wie finde ich heraus, ob das Modul installiert ist?
Wo ist Perl standartmaessig installiert?
Wie installiere ich ein solches Modul?
Oder ist das alles vielleicht gar nicht noetig?
Werden diese Perl Einstellungen fuer MySQL auch benoetigt, wenn ich spaeter mit PHP3 arbeiten will?
Ich weiss, das sind sehr viele Frage auf einmal. Klingt vielleicht auch sehr laienhaft, aber wie gesagt, war ich bisher nur Anwender und nicht Administrator.
Im Forumsarchiv habe ich leider keinen Beitrag gefunden, der mir bei meinem Problem weiterhilft.
Es waer schoen, wenn mir jemand ein paar Tips geben koennte.
Vielen Dank
Sandra
hi!
Wie finde ich heraus, ob das Modul installiert ist?
perl -e 'use <modulname>;' && echo "Modul installiert" echo "Modul nicht installiert"
Wo ist Perl standartmaessig installiert?
Es gibt keinen Standard. Mit einer gewissen Wahrscheinlichkeit findest du die Perl-Module in /usr/lib/perl5
oder /usr/local/lib/perl5. Der Perl-Interpreter liegt vielleicht in /usr/bin/perl, /bin/perl oder /usr/local/bin/perl.
Wie installiere ich ein solches Modul?
perl -MCPAN -e 'shell'
und dann mal "help" eintippen, oder gleich "install <modulname>".
Alternativ:
* Modul von CPAN runterladen (http://www.perl.com/CPAN)
* Modul entpacken: tar xvfz <modularchiv>.tar.gz && cd <modularchiv>
* perl Makefile.PL
* make
* evtl. make test
* make install
Oder ist das alles vielleicht gar nicht noetig?
Doch, das DBI-Modul ist vermutlich nicht standardmäßig unterstützt, und die passenden DBD-Module erst
recht nicht.
Werden diese Perl Einstellungen fuer MySQL auch benoetigt, wenn ich spaeter mit PHP3 arbeiten will?
Nein, Perl und PHP3 haben miteinander überhaupt nichts zu tun.
bye, Frank!
Zunaechst zur Installation von MySQL:
Ich bin der Installationsanleitung gefolgt, aber an dem Punkt, wo es um Perl geht komme ich nicht weiter.
Da steht, man soll im Verzeichnis /usr/local/mysql/perl/DBI den Befehl 'perl Makefile.PL' ausfuehren.
Mein Problem: das Verzeichnis /usr/local/mysql hat kein Unterverzeichnis 'perl'. Woran kann das liegen?
Die Installation von Perl-Modulen unter UNIX beginnt immer mit "perl Makefile.PL" (was die Konfiguration
des Perl-Interpreters liest, daraus das passende Verzeichnis für Module ermittelt und ein entsprechendes
Makefile erzeugt, damit der Modul passend zur Perl-Installation installiert wird - eben damit Du das alles
nicht mühsam herausfinden mußt, Perl weiß das selbst). Danach "make" (übersetzen), "make test"(testen) und
"make install" (Module ins "lib"-Verzeichnis kopieren etc.), fertig.
*Wo* das Verzeichnis am Anfang lag, in welchem Du die verpackte Version Deines DBI-Moduls gelagert hast, um
es zu installieren, ist egal. Falls es nicht da ist, wo Du ihn erwartest, hole ihn Dir von www.cpan.org in
ein beliebiges Verzeichnis und dann weiter wie in Deiner Anleitung.
Du kannst aber auch mit "find / -name Makefile.PL -print" die gesamte Platte nach dieser Datei absuchen -
vielleicht ist sie ja doch irgendwo vorhanden? (Es könnte mehrere geben, nämlich eine pro Modul ...)
Mir kam dann der Gedanke, dass das DBI Modul unter Perl vielleicht schon vorab installiert sein muss???
Deine Anleitung beschreibt aber genau diese Installation.
Der Umfang von Perl ist nicht scharf abgegrenzt, eben weil man jederzeit Module installieren kann, aber
etwas so Spezielles wie eine Datenbankschnittstelle ist wahrscheinlich in den meisten Perl-Auslieferungen
nicht automatisch dabei. (Deshalb gibt es ja das intelligente Installationsverfahren.)
Fragen:
Wo ist Perl standartmaessig installiert?
Irgendwo. Das kann Dir egal sein.
Wenn es Dich wirklich interessiert, kannst Du mal "which perl" versuchen - dann sagt Dir die Shell den Pfadnamen der Datei, die es ausführen würde, um das Kommando "perl" zu realisieren. Das kann aber durchaus ein symbolic link sein, der auf ein ganz anderes Verzeichnis zeigt ... "suchet, und ihr werdet finden".
Wie finde ich heraus, ob das Modul installiert ist?
Siehe Franks Antwort.
Auch "perl -V" liefert Dir eine Menge Informationen darüber, was für ein Perl Du da vor Dir hast, in welchen Verzeichnissen Module installiert sein werden usw.
(Was natürlich voraussetzt, daß in Deinem neu installierten Linux in der Environment-Variablen $PATH Deiner Benutzerkennung schon genug drin steht, um Perl zu finden.)
Wie installiere ich ein solches Modul?
Siehe oben. (perl Makefile.PL; make; make test; make install)
Oder ist das alles vielleicht gar nicht noetig?
Das könntest Du herausfinden, indem Du ein Perl-Programm laufen läßt, das diese Module braucht. Entweder es findet sie oder eben nicht. Frank hat ein solches Programm gepostet.
Ich weiss, das sind sehr viele Frage auf einmal. Klingt vielleicht auch sehr laienhaft, aber wie gesagt, war ich bisher nur Anwender und nicht Administrator.
Kein Problem. Administrator sein ist das Hüten eines Flohzirkus.
Im Forumsarchiv habe ich leider keinen Beitrag gefunden, der mir bei meinem Problem weiterhilft.
Klar, weil Dein Problem relativ speziell ist (bezogen auf den Zustand genau Deiner Linux-Installation).