Perl: DBD-SQLite installieren
Hallo, ich möchte gerne das Perl-Modul DBD-SQLite-1.11 von cpan.org installieren. Das "make" ging noch wie gewohnt ohne Probleme. Bei "make test" kommt es zu folgendem Fehler (Meldungen sind gekürzt): ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [u6911372: /homepages/37/d19249310/htdocs/bko/tmp/DBD-SQLite-1.11]$ make test PERL_DL_NONLAZY=1 /usr/bin/perl -Iblib/arch -Iblib/lib -I/usr/lib/perl/5.6.1 -I/usr/share/perl/5.6.1 -e 'use Test::Harness qw(&runtests $verbose); $verbose=0; runtests @ARGV;' t/*.t t/00basic...........ok .. t/02cr_table........ok t/03insert..........dubious Test returned status 2 (wstat 512, 0x200) DIED. FAILED tests 6-10 Failed 5/10 tests, 50.00% okay t/04select..........ok .. t/dbdadmin..........ok Failed Test Status Wstat Total Fail Failed List of Failed -------------------------------------------------------------------------------- t/03insert.t 2 512 10 5 50.00% 6-10 Can't locate object method "last_insert_id" via package "DBI::db" (perhaps you forgot to load "DBI::db"?) at t/03insert.t line 13. Failed 1/25 test scripts, 96.00% okay. 5/406 subtests failed, 98.77% okay. make: *** [test_dynamic] Error 29 [u6911372: /homepages/37/d19249310/htdocs/bko/tmp/DBD-SQLite-1.11]$ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Ein "perl -V" sagt: ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [u6911372: /homepages/37/d19249310/htdocs/bko/tmp/DBD-SQLite-1.11]$ perl -V Summary of my perl5 (revision 5.0 version 6 subversion 1) configuration: Platform: osname=linux, osvers=2.4.28-es, archname=i386-linux uname='linux gluck 2.4.28-es #1 smp sun nov 21 19:05:12 est 2004 i686 unknown ' config_args='-Dccflags=-DDEBIAN -Dcccdlflags=-fPIC -Dlibperl=libperl.so.5.6.1 -Dd_dosuid -des' hint=recommended, useposix=true, d_sigaction=define usethreads=undef use5005threads=undef useithreads=undef Compiler: cc='cc', ccflags ='-DDEBIAN -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-O2', cppflags='-DDEBIAN -fno-strict-aliasing -I/usr/local/include' ccversion='', gccversion='2.95.4 20011002 (Debian prerelease)', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', Linker and Libraries: ld='cc', ldflags =' -L/usr/local/lib' libpth=/usr/local/lib /lib /usr/lib libs=-lgdbm -ldb -ldl -lm -lc -lcrypt perllibs=-ldl -lm -lc -lcrypt libc=/lib/libc-2.2.5.so, so=so, useshrplib=true, libperl=libperl.so.5.6.1 Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic' cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib' Characteristics of this binary (from libperl): @INC: /usr/local/lib/perl/5.6.1 /usr/local/share/perl/5.6.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.6.1 /usr/share/perl/5.6.1 /usr/local/lib/site_perl . [u6911372: /homepages/37/d19249310/htdocs/bko/tmp/DBD-SQLite-1.11]$ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Nach langem Googlen habe ich in einem Forum eine Vermutung gefunden, daß Perl in dieser Version (5.6) möglicherweise ein Problem mit "Scalar::List::Utils" oder "Scalar::Utils" hätte? Kann das hier die Fehlerursache sein? Im voraus Danke für Tips. LG, Ralph PS: Es handelt sich um einen Webserver. Da ich keine root-Rechte besitze Installation in priv.Verzeichnis. Das hat in der Vergangenheit immer gut geklappt. Ach ja, MySql ist nicht möglich.
Hallo, Am Thu, 26 Jan 2006, Ralph Müller schrieb:
ich möchte gerne das Perl-Modul DBD-SQLite-1.11 von cpan.org installieren.
Das "make" ging noch wie gewohnt ohne Probleme. Bei "make test" kommt es zu folgendem Fehler (Meldungen sind gekürzt): ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [u6911372: /homepages/37/d19249310/htdocs/bko/tmp/DBD-SQLite-1.11]$ make test
PERL_DL_NONLAZY=1 /usr/bin/perl -Iblib/arch -Iblib/lib -I/usr/lib/perl/5.6.1 -I/usr/share/perl/5.6.1 -e 'use Test::Harness qw(&runtests $verbose); $verbose=0; runtests @ARGV;' t/*.t t/00basic...........ok .. t/02cr_table........ok t/03insert..........dubious Test returned status 2 (wstat 512, 0x200) DIED. FAILED tests 6-10 Failed 5/10 tests, 50.00% okay t/04select..........ok .. t/dbdadmin..........ok Failed Test Status Wstat Total Fail Failed List of Failed -------------------------------------------------------------------------------- t/03insert.t 2 512 10 5 50.00% 6-10
Can't locate object method "last_insert_id" via package "DBI::db" (perhaps you forgot to load "DBI::db"?) at t/03insert.t line 13.
Ist dein DBI >= 1.43? Siehe: perl -MDBI -e 'print "$DBI::VERSION\n";' Ansonsten ist evtl. der Download defekt, denn bei mir laeuft 03insert.t ohne Problem durch. Mail auch mal die Ausgaben von (eine Zeile): PERL5LIB="" PERL_DL_NONLAZY=1 \ perl "-MExtUtils::Command::MM" "-e" \ "test_harness(1, 'blib/lib', 'blib/arch')" t/03insert.t [..]
Summary of my perl5 (revision 5.0 version 6 subversion 1)
Schon etwas angestaubt...
Nach langem Googlen habe ich in einem Forum eine Vermutung gefunden, daß Perl in dieser Version (5.6) möglicherweise ein Problem mit "Scalar::List::Utils" oder "Scalar::Utils" hätte? Kann das hier die Fehlerursache sein? Im voraus Danke für Tips.
Duerfte hier nicht der Fall sein.
PS: Es handelt sich um einen Webserver. Da ich keine root-Rechte besitze Installation in priv.Verzeichnis. Das hat in der Vergangenheit immer gut geklappt. Ach ja, MySql ist nicht möglich.
Welche Art Daten willst du denn speichern? Vielleicht reicht ja eines der anderen DBD:: Module. -dnh -- Ich springe so oft aus dem Fenster, daß ich ein schnurloses Telefon habe. [Ratti in suse-linux]
Am Freitag, den 27.01.2006, 01:17 +0100 schrieb David Haller:
Am Thu, 26 Jan 2006, Ralph Müller schrieb:
ich möchte gerne das Perl-Modul DBD-SQLite-1.11 von cpan.org installieren.
Das "make" ging noch wie gewohnt ohne Probleme. Bei "make test" kommt es zu folgendem Fehler (Meldungen sind gekürzt): ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [u6911372: /homepages/37/d19249310/htdocs/bko/tmp/DBD-SQLite-1.11]$ make test t/03insert..........dubious Test returned status 2 (wstat 512, 0x200) DIED. FAILED tests 6-10 Failed 5/10 tests, 50.00% okay ... Can't locate object method "last_insert_id" via package "DBI::db" (perhaps you forgot to load "DBI::db"?) at t/03insert.t line 13.
Ist dein DBI >= 1.43? Siehe: perl -MDBI -e 'print "$DBI::VERSION\n";'
Nein, leider nicht, Version 1.32 ist offenbar installiert. (Habe leider keinen Einfluß darauf.)
Ansonsten ist evtl. der Download defekt, denn bei mir laeuft 03insert.t ohne Problem durch.
Download ist ok.
Mail auch mal die Ausgaben von (eine Zeile):
PERL5LIB="" PERL_DL_NONLAZY=1 \ perl "-MExtUtils::Command::MM" "-e" \ "test_harness(1, 'blib/lib', 'blib/arch')" t/03insert.t
Can't locate ExtUtils/Command/MM.pm in @INC (@INC contains: /usr/local/lib/perl/5.6.1 /usr/local/share/perl/5.6.1 \ /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.6.1 \ /usr/share/perl/5.6.1 /usr/local/lib/site_perl .). BEGIN failed--compilation aborted.
Summary of my perl5 (revision 5.0 version 6 subversion 1)
Welche Art Daten willst du denn speichern? Vielleicht reicht ja eines der anderen DBD:: Module.
Es handelt sich um eine Liste, auf die mehrere Leute "gleichzeitig" zugreifen. Bei DB_File muß man halt praktisch immer über den Schlüssel suchen und ist glaube ich halt nicht ganz so flexibel bei Abfragen, und nicht ganz so sicher in der Datenhaltung. Ich überlege, ob es vielleicht eine Loesung ist anstelle von DBD::SQLite das SQLite-Binary für die Shell-Schnittstelle zu verwenden? Und dann die Befehle im Perl-Skript mittels "system(...)" und "`...`" abzusetzen. Das finde ich halt irgendwie eklig, aber? -- Mist. Viele Grüße, Ralph PS: Habe zwischenzeitlich auch mal Scalar::Utils in ein privates Verzeichnis installiert und dann bei der Installation von DBD::SQLite ein perl -e 'unshift @INC,"/kunden/homepages/37/d19249310/htdocs/bko/libs"; `make test`;' probiert, aber wieder nur ein Can't locate object method "last_insert_id" via package "DBI::db" (perhaps you forgot to load "DBI::db"?) at t/03insert.t line 13. Failed 1/25 test scripts, 96.00% okay. 5/406 subtests failed, 98.77% okay. make: *** [test_dynamic] Error 29 als Ergebnis zurückbekommen. Glaube jetzt auch kaum mehr, daß Scalar::Utils die Fehlerursache ist.
Hallo, Am Fri, 27 Jan 2006, Ralph Müller schrieb:
Am Freitag, den 27.01.2006, 01:17 +0100 schrieb David Haller:
Am Thu, 26 Jan 2006, Ralph Müller schrieb:
ich möchte gerne das Perl-Modul DBD-SQLite-1.11 von cpan.org installieren.
Das "make" ging noch wie gewohnt ohne Probleme. Bei "make test" kommt es zu folgendem Fehler (Meldungen sind gekürzt): ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [u6911372: /homepages/37/d19249310/htdocs/bko/tmp/DBD-SQLite-1.11]$ make test t/03insert..........dubious Test returned status 2 (wstat 512, 0x200) DIED. FAILED tests 6-10 Failed 5/10 tests, 50.00% okay ... Can't locate object method "last_insert_id" via package "DBI::db" (perhaps you forgot to load "DBI::db"?) at t/03insert.t line 13.
Ist dein DBI >= 1.43? Siehe: perl -MDBI -e 'print "$DBI::VERSION\n";'
Nein, leider nicht, Version 1.32 ist offenbar installiert. (Habe leider keinen Einfluß darauf.)
Ist zu alt. Musst du eben (wie DBD::SQLite) auch lokal installieren. Aus den Changes von DBI: =head2 Changes in DBI 1.38, 21th August 2003 [..] Added $dbh->last_insert_id method. Du brauchst also DBI >= 1.38
Mail auch mal die Ausgaben von (eine Zeile):
PERL5LIB="" PERL_DL_NONLAZY=1 \ perl "-MExtUtils::Command::MM" "-e" \ "test_harness(1, 'blib/lib', 'blib/arch')" t/03insert.t
Can't locate ExtUtils/Command/MM.pm in @INC (@INC contains: /usr/local/lib/perl/5.6.1 /usr/local/share/perl/5.6.1 \ /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.6.1 \ /usr/share/perl/5.6.1 /usr/local/lib/site_perl .). BEGIN failed--compilation aborted.
Dann hast du die ExtUtils wohl auch lokal installiert. Sonst wuerde 'make test' garnicht laufen. [..]
PS: Habe zwischenzeitlich auch mal Scalar::Utils in ein privates Verzeichnis installiert und dann bei der Installation von DBD::SQLite ein
perl -e 'unshift @INC,"/kunden/homepages/37/d19249310/htdocs/bko/libs"; `make test`;'
Einfacher: PERL5LIB=/kunden/homepages/37/d19249310/htdocs/bko/libs make test Das solltest du aber sowieso in die Umgebung aufnehmen. Oder eben in jedem Script: use lib '/kunden/homepages/37/d19249310/htdocs/bko/libs'; reinschreiben. Uebrigens ist es keine gute Idee die Sachen unter htdocs abzulegen. Was ist denn dein ~ auf dem Server? -dnh -- 50: Version x.1 Kostenpflichtiger Bugfix (Kristian Köhntopp)
Am Freitag, den 27.01.2006, 23:23 +0100 schrieb David Haller:
Am Fri, 27 Jan 2006, Ralph Müller schrieb:
Am Freitag, den 27.01.2006, 01:17 +0100 schrieb David Haller:
Am Thu, 26 Jan 2006, Ralph Müller schrieb:
ich möchte gerne das Perl-Modul DBD-SQLite-1.11 von cpan.org installieren.
Can't locate object method "last_insert_id" via package "DBI::db" (perhaps you forgot to load "DBI::db"?) at t/03insert.t line 13.
Ist dein DBI >= 1.43? Siehe: perl -MDBI -e 'print "$DBI::VERSION\n";'
Nein, leider nicht, Version 1.32 ist offenbar installiert. (Habe leider keinen Einfluß darauf.)
Du brauchst also DBI >= 1.38
Habe die aktuellste DBI-Version (1.50) in ein priv. Verzeichnis installieren können. Allerdings erst nachdem ich Makefile manuell editiert habe. Aus unbekanntem Grund bleiben meine Zusätze mit PREFIX und LIB im Makefile unberüchsichtigt. Allerdings bleibt es im Zusammenhang mit der Installation von DBD::SQLite trotzdem bei dem genannten Fehler. Ich habe jetzt viel Mühe und Zeit und auch Nerven für Lösungsversuche verwendet. Irgendwie wird immer diese Funktion last_insert_id vermißt, welches laut Fehlermeldungen in einer Datei namens DBI::db stecken soll. Letztere Datei habe ich übrigens auch nach der Installation der 1.50er-Version nicht gefunden. Ich weiß da momentan wirklich nicht mehr weiter, und muß jetzt mal eine Pause einlegen. Wenn jetzt Sommer wäre würde ich einen halben Quadratmeter Garten umgraben. Vielleicht passen die übrigen Teile der installierten älteren Perl-Version doch nicht mehr zum aktuellen DBI-Modul. Eine derartige Warnmeldung erscheint bei der Installation. (Nein, mit DBI-Version 1.38 probiere ich's heute nicht mehr.)
reinschreiben. Uebrigens ist es keine gute Idee die Sachen unter htdocs abzulegen. Was ist denn dein ~ auf dem Server?
Ich denke das Verzeichnis /homepages/37/d19249310/htdocs/bko/ müßte es sein. Das ist das Verzeichnis in dem ich beim Einloggen per FTP lande. Ein "cd ~" wird nicht verstanden, "~" sei ein unbekanntes Verzeichnis. Ich kann mich gleichwohl im Verzeichnisbaum von dort aus per "cd .." weiterhangeln. Hmm, btw, wieso eigentlich ist htdocs ungünstig? LG, Ralph
Hallo, Am Sat, 28 Jan 2006, Ralph Müller schrieb:
Am Freitag, den 27.01.2006, 23:23 +0100 schrieb David Haller:
Am Fri, 27 Jan 2006, Ralph Müller schrieb:
Am Freitag, den 27.01.2006, 01:17 +0100 schrieb David Haller:
Am Thu, 26 Jan 2006, Ralph Müller schrieb:
ich möchte gerne das Perl-Modul DBD-SQLite-1.11 von cpan.org installieren.
Can't locate object method "last_insert_id" via package "DBI::db" (perhaps you forgot to load "DBI::db"?) at t/03insert.t line 13.
Ist dein DBI >= 1.43? Siehe: perl -MDBI -e 'print "$DBI::VERSION\n";'
Nein, leider nicht, Version 1.32 ist offenbar installiert. (Habe leider keinen Einfluß darauf.)
Du brauchst also DBI >= 1.38
Habe die aktuellste DBI-Version (1.50) in ein priv. Verzeichnis installieren können. Allerdings erst nachdem ich Makefile manuell editiert habe. Aus unbekanntem Grund bleiben meine Zusätze mit PREFIX und LIB im Makefile unberüchsichtigt.
Wie genau ist dein Aufruf von ... perl Makefile.PL ... ... make ... ... make test ... und ggfs. ... make install ... Eigentlich klappt das naemlich.
Allerdings bleibt es im Zusammenhang mit der Installation von DBD::SQLite trotzdem bei dem genannten Fehler.
Das duerfte dann ein (Folge-)Fehler bzgl. @INC sein, da musst du dann fuer deinen User PERL5LIB passend setzen (s.u.).
Ich weiß da momentan wirklich nicht mehr weiter, und muß jetzt mal eine Pause einlegen. Wenn jetzt Sommer wäre würde ich einen halben Quadratmeter Garten umgraben.
*g*
Vielleicht passen die übrigen Teile der installierten älteren Perl-Version doch nicht mehr zum aktuellen DBI-Modul. Eine derartige Warnmeldung erscheint bei der Installation.
Welche Warn-/Fehlermeldung genau? Meine Glaskugel ist gerade in der Spuelmaschine -- und ich hab gar keine Spuelmaschine!!!
(Nein, mit DBI-Version 1.38 probiere ich's heute nicht mehr.)
Ggfs. kann ich dir eine URL/Version zukommen lassen, die besser als die aktuelle 1.5x passt. Aber daran sollte es eigentlich nicht liegen.
reinschreiben. Uebrigens ist es keine gute Idee die Sachen unter htdocs abzulegen. Was ist denn dein ~ auf dem Server?
Ich denke das Verzeichnis /homepages/37/d19249310/htdocs/bko/ müßte es sein. Das ist das Verzeichnis in dem ich beim Einloggen per FTP lande. Ein "cd ~" wird nicht verstanden, "~" sei ein unbekanntes Verzeichnis. Ich kann mich gleichwohl im Verzeichnisbaum von dort aus per "cd .." weiterhangeln.
Bis wohin "nach oben"? Und bis wohin hast du Schreibzugriff? Rein von der Benamsung solltest du ab /homepages/37/d19249310/ Schreibzugriff haben. Und _dort_ solltest du dann deinen perl-Kram ablegen (also in /homepages/37/d19249310/lib/perl5 und das dann per PERL5LIB bzw. "use lib '/homepages/37/d19249310/lib/perl5';" deinem perl bekannt machen[1]. Grund: unter htdocs sind eher Angriffe von aussen "moeglich". Denn offensichtlich handelt es sich um einen Webserver. Es gilt einfach die Grundregel, dass nur _genau das_, was dort liegen _muss_ dort liegt. Und alles andere ausserhalb und fuer/via Webserver unzugaenglich. Ein passender Begriff zum "googlen" faellt mir dazu aber gerade nicht ein, sorry. Mail bitte mal die Ausgabe von 'env' (bzw. 'set') sowie die von perl -e 'print join("\n", @INC), "\n";' auf dem Server. Das sollte ueber die Umgebung ein bisserl mehr Auskunft geben... -dnh [1] ja, du kannst schon kompiliertes verschieben -- Deep in the human unconcious is a pervasive need for a logical universe that makes sense. But the real universe is always one step beyond logic. -- from "The Sayings of Muad'Dib" by the Princess Irulan -- from "Dune" by Frank Herbert
Hallo David, hallo Liste, also, zuerst habe ich nun ein Verzeichnis /homepages/37/d19249310/htdocs/bko/myLibs/ erzeugt. Und das frische DBI-Modul von CPAN liegt nun entpackt im Verzeichnis /homepages/37/d19249310/htdocs/bko/tmp/DBI-1.50/ Am Sonntag, den 29.01.2006, 06:22 +0100 schrieb David Haller:
Wie genau ist dein Aufruf von
.... perl Makefile.PL ...
[u6911372: /homepages/37/d19249310/htdocs/bko/tmp/DBI-1.50]$ perl Makefile.PL \ PREFIX=/kunden/homepages/37/d19249310/htdocs/bko/myLibs \ LIB=/kunden/homepages/37/d19249310/htdocs/bko/myLibs Creating DBI::PurePerl test variant: t/zvpp_72childhandles.t [...] Creating DBI::PurePerl test variant: t/zvpp_80proxy.t Checking if your kit is complete... Looks good Writing Makefile for DBI ************************************************************************** Perl versions below 5.6.1 are no longer supported by the DBI. Perl versions 5.6.x may fail during installation with a complaint about the use of =head3 in the pod documentation. Press return to continue... ************************************************************************** Can't open PREFIX=/kunden/homepages/37/d19249310/htdocs/bko/myLibs: No such file or directory at Makefile.PL line 24. Can't open LIB=/kunden/homepages/37/d19249310/htdocs/bko/myLibs: No such file or directory at Makefile.PL line 24. I see you're using perl 5.006001 on i386-linux, okay. Remember to actually *read* the README file! Use 'make' to build the software (dmake or nmake on Windows). Then 'make test' to execute self tests. Then 'make install' to install the DBI and then delete this working directory before unpacking and building any DBD::* drivers.
.... make ...
make /usr/bin/perl -I/usr/lib/perl/5.6.1 -I/usr/share/perl/5.6.1 -MExtUtils::Command -e mkpath blib/lib/DBI rm -f blib/lib/DBI/Changes.pm cp Changes blib/lib/DBI/Changes.pm /usr/bin/perl -I/usr/lib/perl/5.6.1 -I/usr/share/perl/5.6.1 -MExtUtils::Command -e mkpath blib/lib/DBI rm -f blib/lib/DBI/Roadmap.pm cp Roadmap.pod blib/lib/DBI/Roadmap.pm /bin/sh -c true cp Driver_xst.h blib/arch/auto/DBI/Driver_xst.h [...] cp lib/DBD/Sponge.pm blib/lib/DBD/Sponge.pm /usr/bin/perl -p -e "s/~DRIVER~/Perl/g" ./Driver.xst > Perl.xsi /usr/bin/perl -I/usr/lib/perl/5.6.1 -I/usr/share/perl/5.6.1 /usr/share/perl/5.6.1/ExtUtils/xsubpp -typemap /usr/share/perl/5.6.1/ExtUtils/typemap -typemap typemap Perl.xs
Perl.xsc && mv Perl.xsc Perl.c cc -c -DDEBIAN -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -DVERSION=\"1.50\" -DXS_VERSION=\"1.50\" -fPIC -I/usr/lib/perl/5.6.1/CORE -W -Wall -Wpointer-arith -Wbad-function-cast -Wno-comment -Wno-sign-compare -Wno-cast-qual -DDBI_NO_THREADS Perl.c /usr/bin/perl -I/usr/lib/perl/5.6.1 -I/usr/share/perl/5.6.1 /usr/share/perl/5.6.1/ExtUtils/xsubpp -typemap /usr/share/perl/5.6.1/ExtUtils/typemap -typemap typemap DBI.xs DBI.xsc && mv DBI.xsc DBI.c cc -c -DDEBIAN -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -DVERSION=\"1.50\" -DXS_VERSION=\"1.50\" -fPIC -I/usr/lib/perl/5.6.1/CORE -W -Wall -Wpointer-arith -Wbad-function-cast -Wno-comment -Wno-sign-compare -Wno-cast-qual -DDBI_NO_THREADS DBI.c Running Mkbootstrap for DBI () chmod 644 DBI.bs rm -f blib/arch/auto/DBI/DBI.so LD_RUN_PATH="" cc -shared -L/usr/local/lib DBI.o -o blib/arch/auto/DBI/DBI.so chmod 755 blib/arch/auto/DBI/DBI.so cp DBI.bs blib/arch/auto/DBI/DBI.bs chmod 644 blib/arch/auto/DBI/DBI.bs /usr/bin/perl -Iblib/arch -Iblib/lib -I/usr/lib/perl/5.6.1 -I/usr/share/perl/5.6.1 dbiproxy.PL dbiproxy Extracted dbiproxy from dbiproxy.PL with variable substitutions. cp dbiproxy blib/script/dbiproxy /usr/bin/perl -I/usr/lib/perl/5.6.1 -I/usr/share/perl/5.6.1 -MExtUtils::MakeMaker -e "MY->fixin(shift)" blib/script/dbiproxy /usr/bin/perl -Iblib/arch -Iblib/lib -I/usr/lib/perl/5.6.1 -I/usr/share/perl/5.6.1 dbiprof.PL dbiprof Extracted dbiprof from dbiprof.PL with variable substitutions. cp dbiprof blib/script/dbiprof /usr/bin/perl -I/usr/lib/perl/5.6.1 -I/usr/share/perl/5.6.1 -MExtUtils::MakeMaker -e "MY->fixin(shift)" blib/script/dbiprof Manifying blib/man3/Roadmap.3pm [...] Manifying blib/man3/DBD::Sponge.3pm Perl.xs: In function `dbd_st_rows': Perl.xs:39: warning: unused parameter `h' Perl.c: In function `XS_DBD__Perl__dr_data_sources': [...] Perl.c: In function `boot_DBD__Perl': Perl.c:1064: warning: unused parameter `cv' Perl.c: At top level: dbipport.h:529: warning: `my_sv_2pvbyte' defined but not used DBI.xs: In function `dbih_clearcom': DBI.xs:1183: warning: unused variable `Perl___notused' [...]
.... make test ...
make test /bin/sh -c true PERL_DL_NONLAZY=1 /usr/bin/perl -Iblib/arch -Iblib/lib -I/usr/lib/perl/5.6.1 -I/usr/share/perl/5.6.1 -e 'use Test::Harness qw(&runtests $verbose); $verbose=0; runtests @ARGV;' t/*.t t/01basics..........ok, 4/131 skipped: developer tests t/02dbidrv..........ok t/03handle..........ok t/04mods............ok t/05thrclone........skipped: this linux perl 5.006001 not configured to support iThreads t/06attrs...........ok [...] t/11fetch...........ok t/14utf8............skipped: Requires perl 5.8 t/15array...........ok [...] t/70callbacks.......ok t/72childhandles....skipped: Scalar::Util::weaken not available t/80proxy...........ok t/pod...............skipped: Test::Pod 1.00 required for testing POD t/zvpp_01basics.....ok, 6/131 skipped: various reasons t/zvpp_02dbidrv.....ok, 10/51 skipped: various reasons t/zvpp_03handle.....ok, 76/135 skipped: various reasons t/zvpp_04mods.......ok t/zvpp_05thrclone...skipped: this linux perl 5.006001 not configured to support iThreads t/zvpp_06attrs......ok, 7/137 skipped: various reasons t/zvpp_07kids.......skipped: $h->{Kids} attribute not supported for DBI::PurePerl t/zvpp_08keeperr....ok t/zvpp_09trace......ok t/zvpp_10examp......ok, 39/253 skipped: various reasons t/zvpp_11fetch......ok t/zvpp_14utf8.......skipped: Requires perl 5.8 t/zvpp_15array......ok t/zvpp_20meta.......ok t/zvpp_30subclass...ok t/zvpp_40profile....skipped: profiling not supported for DBI::PurePerl t/zvpp_41prof_dump..skipped: profiling not supported for DBI::PurePerl t/zvpp_42prof_data..skipped: profiling not supported for DBI::PurePerl t/zvpp_43profenv....skipped: profiling not supported for DBI::PurePerl t/zvpp_50dbm........ok t/zvpp_60preparse...skipped: preparse not supported for DBI::PurePerl t/zvpp_70callbacks..skipped: $h->{Callbacks} attribute not supported for DBI::PurePerl t/zvpp_72childhandles.skipped: Scalar::Util::weaken not available t/zvpp_80proxy......skipped: DBD::Proxy currently has a problem under DBI::PurePerl All tests successful, 15 tests and 142 subtests skipped. Files=49, Tests=2335, 12 wallclock secs ( 7.23 cusr + 1.06 csys = 829 CPU) PERL_DL_NONLAZY=1 /usr/bin/perl -Iblib/arch -Iblib/lib -I/usr/lib/perl/5.6.1 -I/usr/share/perl/5.6.1 test.pl test.pl DBI test application $Revision: 11.7 $ Switch: DBI 1.50 by Tim Bunce, 1.50 Available Drivers: CSV, DBM, ExampleP, File, Proxy, Sponge, XBase, mysql dbi:ExampleP:: testing 5 sets of 20 connections: Connecting... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Disconnecting... Connecting... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Disconnecting... Connecting... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Disconnecting... Connecting... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Disconnecting... Connecting... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Disconnecting... Made 100 connections in 0 wallclock secs ( 0.01 usr + 0.00 sys = 0.01 CPU) Testing handle creation speed... 16666 NullP sth/s perl 5.006001 i386-linux (gcc 2.95.4 -O2) test.pl done Using /homepages/37/d19249310/htdocs/bko/tmp/DBI-1.50/blib
.... make install ...
make install /bin/sh -c true mkdir /usr/local/lib/perl/5.6.1: Permission denied at /usr/share/perl/5.6.1/ExtUtils/Install.pm line 81 make: *** [pure_site_install] Error 255 Hier nun das Makefile von Zeile 32 bis Zeile 89: # They may have been overridden via Makefile.PL or on the command line AR = ar CC = cc CCCDLFLAGS = -fPIC CCDLFLAGS = -rdynamic DLEXT = so DLSRC = dl_dlopen.xs LD = cc LDDLFLAGS = -shared -L/usr/local/lib LDFLAGS = -L/usr/local/lib LIBC = /lib/libc-2.2.5.so LIB_EXT = .a OBJ_EXT = .o OSNAME = linux OSVERS = 2.4.28-es RANLIB = : SO = so EXE_EXT = FULL_AR = /usr/bin/ar # --- MakeMaker constants section: AR_STATIC_ARGS = cr NAME = DBI DISTNAME = DBI NAME_SYM = DBI VERSION = 1.50 VERSION_SYM = 1_50 XS_VERSION = 1.50 INST_BIN = blib/bin INST_EXE = blib/script INST_LIB = blib/lib INST_ARCHLIB = blib/arch INST_SCRIPT = blib/script PREFIX = /usr SITEPREFIX = $(PREFIX)/local INSTALLDIRS = site INSTALLPRIVLIB = $(PREFIX)/share/perl/5.6.1 INSTALLARCHLIB = $(PREFIX)/lib/perl/5.6.1 INSTALLSITELIB = $(SITEPREFIX)/share/perl/5.6.1 INSTALLSITEARCH = $(SITEPREFIX)/lib/perl/5.6.1 INSTALLVENDORLIB = $(PREFIX)/share/perl5 INSTALLVENDORARCH = $(PREFIX)/lib/perl5 INSTALLBIN = $(PREFIX)/bin INSTALLSCRIPT = $(PREFIX)/bin INSTALLSITEBIN = $(SITEPREFIX)/bin PERL_LIB = /usr/share/perl/5.6.1 PERL_ARCHLIB = /usr/lib/perl/5.6.1 SITELIBEXP = /usr/local/share/perl/5.6.1 SITEARCHEXP = /usr/local/lib/perl/5.6.1 # Dieses ist die Zeile 81 LIBPERL_A = libperl.a FIRST_MAKEFILE = Makefile MAKE_APERL_FILE = Makefile.aperl PERLMAINCC = $(CC) PERL_INC = /usr/lib/perl/5.6.1/CORE PERL = /usr/bin/perl FULLPERL = /usr/bin/perl FULL_AR = /usr/bin/ar Was ich nicht verstehe ist: 1.) Wieso werden PREFIX und LIB nicht im Makefile berücksichtigt? Im Makefile ist davon weit und breit nirgends etwas zu sehen. 2.) Die Fehlermeldung "Can't open PREFIX=/kunden/homepages/37/d19249310/htdocs/bko/myLibs: No such file or directory at Makefile.PL line 24." Wird hier etwa der String "PREFIX=" mit zum Dateinamen gezählt? Wieso das denn? Das Verzeichnis /kunden/..../myLibs/ gibt es ja, habe ich ja selbst angelegt! 3.) Bei "make install": mkdir /usr/local/lib/perl/5.6.1: Permission denied Klar liegt das am Makefile, aber wieso keine Berücksichtigung von PREFIX und LIB ?
Bis wohin "nach oben"? Und bis wohin hast du Schreibzugriff? Rein von der Benamsung solltest du ab /homepages/37/d19249310/ Schreibzugriff haben. Und _dort_ solltest du dann deinen perl-Kram ablegen (also in
Muß ich noch probieren.
Mail bitte mal die Ausgabe von 'env' (bzw. 'set') sowie die von
perl -V sagt u.a.: Characteristics of this binary (from libperl): Compile-time options: USE_LARGE_FILES Built under linux Compiled at Dec 23 2004 16:34:22 @INC: /usr/local/lib/perl/5.6.1 /usr/local/share/perl/5.6.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.6.1 /usr/share/perl/5.6.1 /usr/local/lib/site_perl . LG, Ralph
Hallo, Am Sun, 29 Jan 2006, Ralph Müller schrieb:
also, zuerst habe ich nun ein Verzeichnis /homepages/37/d19249310/htdocs/bko/myLibs/ erzeugt. Und das frische DBI-Modul von CPAN liegt nun entpackt im Verzeichnis /homepages/37/d19249310/htdocs/bko/tmp/DBI-1.50/
Am Sonntag, den 29.01.2006, 06:22 +0100 schrieb David Haller:
Wie genau ist dein Aufruf von
.... perl Makefile.PL ...
[u6911372: /homepages/37/d19249310/htdocs/bko/tmp/DBI-1.50]$ perl Makefile.PL \ PREFIX=/kunden/homepages/37/d19249310/htdocs/bko/myLibs \ LIB=/kunden/homepages/37/d19249310/htdocs/bko/myLibs
Ok.
************************************************************************** Can't open PREFIX=/kunden/homepages/37/d19249310/htdocs/bko/myLibs: No such file or directory at Makefile.PL line 24. Can't open LIB=/kunden/homepages/37/d19249310/htdocs/bko/myLibs: No such file or directory at Makefile.PL line 24.
Das ist komisch. Hier klappt's: ==== $ PERL5LIB="" perl Makefile.PL PREFIX=/tmp/dbitest \ LIB=/tmp/dbitest/lib verbose [..] LIB => q[/tmp/dbitest/lib] NAME => q[DBI] PREFIX => q[/tmp/dbitest] [..] Writing Makefile for DBI ==== Beachte dabei, wie LIB und PREFIX in der Ausgabe stehen. Mach also bitte auch mal: perl Makefile.PL PREFIX=/tmp/dbitest LIB=/tmp/dbitest/lib verbose Bzw. setze ggfs. auch ein 'PERL5LIB=""' davor.
Bis wohin "nach oben"? Und bis wohin hast du Schreibzugriff? Rein von der Benamsung solltest du ab /homepages/37/d19249310/ Schreibzugriff haben. Und _dort_ solltest du dann deinen perl-Kram ablegen (also in
Muß ich noch probieren.
Mach das. Und zeig auch mal auf die Ausgabe von getent passwd `id -u` | cut -d: -f6 Denn wie gesagt: unterhalb von htdocs gehoert sowas nicht hin. -dnh -- Bored? Want hours of entertainment? Just set the initdefault to 6! Whee!
Ich glaube wir haben das Rätsel zum größten Teil lösen können. Nach einem allerersten Test mit connect und disconnect scheint es jetzt zu funktionieren. Am Montag, den 30.01.2006, 02:01 +0100 schrieb David Haller:
Mach also bitte auch mal: perl Makefile.PL PREFIX=/tmp/dbitest LIB=/tmp/dbitest/lib verbose
Als ich Deinen Tip mit dem "verbose" an den Befehlsaufruf hintendrangehängt habe ergab das Ergebnis nur ein zusätzliches "Can't open verbose: No such file or directory at Makefile.PL line 24." Daraufhin habe ich diese ominöse Zeile 24 von Makefile.PL des DBI-Moduls gesucht. Der Anfang dieser Datei sieht so aus: # -*- perl -*- # # $Id: Makefile.PL,v 11.20 2004/01/08 14:03:46 timbo Exp $ # # Copyright (c) 1994-2002 Tim Bunce England # # See COPYRIGHT section in DBI.pm for usage and distribution rights. BEGIN { require 5.006_00; unshift @INC, "lib"; } if ($] < 5.008000) { warn qq{\a\a\a ********************************************************** Perl versions below 5.6.1 are no longer supported by the DBI. Perl versions 5.6.x may fail during installation with a complaint about the use of =head3 in the pod documentation. Press return to continue... ********************************************************** }; sleep 3; my $pause = <>; } Und aaaarghhhh!, die Zeile "my $pause = <>" ist das Fatale. Sie frißt nämlich meine schönen PREFIX und LIB - Parameter einfach weg! Kein Wunder, daß ich davon im erzeugten Makefile nichts mehr gesehen habe. Also diese Zeile gelöscht und anschließend ging DBI als auch DBD::SQLite wunderbar (in priv.Verzeichnis) zu installieren. Als letztes ungelöstes Geheimnis verbleibt für mich die Frage, was sich der Autor/Maintainer der Datei Makefile.PL dabei wohl gedacht hat? Auf den ersten Blick siehts für mich so aus als daß er vom Benutzer einen Tastendruck abwarten wollte, aber irgendwie funktioniert das offenbar ja nicht wenn noch etwas wie PREFIX o.ä. hintendranhängt. Vielleicht werde ich später mal einen tieferen Perl-Einblick als heute besitzen, und dann verstehen wieso er das dann ausgerechnet so gemacht hat, und nicht z.B. vorher mit mehreren shift's erst die Parameter weggenommen/gesichert hat.
Mach das. Und zeig auch mal auf die Ausgabe von getent passwd `id -u` | cut -d: -f6
ergibt "/kunden/homepages/37/d19249310/htdocs"
Denn wie gesagt: unterhalb von htdocs gehoert sowas nicht hin.
Werde ich versuchen anzupassen. LG, Ralph PS: Ohne Dich David hätte ich vorher aufgegeben.
Hallo, Am Mon, 30 Jan 2006, Ralph Müller schrieb:
Ich glaube wir haben das Rätsel zum größten Teil lösen können. Nach einem allerersten Test mit connect und disconnect scheint es jetzt zu funktionieren.
Am Montag, den 30.01.2006, 02:01 +0100 schrieb David Haller:
Mach also bitte auch mal: perl Makefile.PL PREFIX=/tmp/dbitest LIB=/tmp/dbitest/lib verbose
Als ich Deinen Tip mit dem "verbose" an den Befehlsaufruf hintendrangehängt habe ergab das Ergebnis nur ein zusätzliches "Can't open verbose: No such file or directory at Makefile.PL line 24."
Daraufhin habe ich diese ominöse Zeile 24 von Makefile.PL des DBI-Moduls gesucht. Der Anfang dieser Datei sieht so aus: # -*- perl -*- # # $Id: Makefile.PL,v 11.20 2004/01/08 14:03:46 timbo Exp $ # # Copyright (c) 1994-2002 Tim Bunce England # # See COPYRIGHT section in DBI.pm for usage and distribution rights.
BEGIN { require 5.006_00; unshift @INC, "lib"; }
if ($] < 5.008000) { warn qq{\a\a\a ********************************************************** Perl versions below 5.6.1 are no longer supported by the DBI. Perl versions 5.6.x may fail during installation with a complaint about the use of =head3 in the pod documentation. Press return to continue... ********************************************************** }; sleep 3; my $pause = <>; }
Und aaaarghhhh!, die Zeile "my $pause = <>" ist das Fatale. Sie frißt nämlich meine schönen PREFIX und LIB - Parameter einfach weg! Kein Wunder, daß ich davon im erzeugten Makefile nichts mehr gesehen habe.
*ARGS* Kein Wunder, dass es bei mir funktioniert, denn ich habe perl-5.8.6, also '($] < 5.008000)' ist bei mir unwahr, deswegen wird bei mir das 'my $pause = <>;' nicht ausgefuehrt -- und somit werden auch keine Parameter gefressen bzw. als Argumente fuer '<>' angesehen (siehe perldoc weissnichmehr, wo <> eben beschrieben wird, das nimmt ja Argumente als zu lesende Dateien oder, sofern keine vorhanden, eben STDIN). Ergo ist das einen Bugreport wert, denn Makefile.PL sollte in dieser Situation _explizit_ von STDIN lesen. Machst du den Bugreport?
Also diese Zeile gelöscht und anschließend ging DBI als auch DBD::SQLite wunderbar (in priv.Verzeichnis) zu installieren.
s.o. Als "workaround" bei dir ist's ok.
Als letztes ungelöstes Geheimnis verbleibt für mich die Frage, was sich der Autor/Maintainer der Datei Makefile.PL dabei wohl gedacht hat? Auf den ersten Blick siehts für mich so aus als daß er vom Benutzer einen Tastendruck abwarten wollte, aber irgendwie funktioniert das offenbar ja nicht wenn noch etwas wie PREFIX o.ä. hintendranhängt.
Jep. s.o.
Mach das. Und zeig auch mal auf die Ausgabe von getent passwd `id -u` | cut -d: -f6
ergibt "/kunden/homepages/37/d19249310/htdocs"
*MIST* Das heisst, dein ~ ist unter htdocs... Dann musst du zwanglaeufig auch unterhalb davon installieren. Ich wuerde dennoch ~/lib/perl5 vorschlagen, also perl Makefile.PL PREFIX=/kunden/homepages/37/d19249310/htdocs LIB kannst du in dem Fall dann weglassen. Das ist in deiner Situation wohl noch am saubersten. Aber trete mal dem Hoster auf die Fuesse, dass sowas eigentlich ein Unding ist. Wer ist dein Hoster?
Denn wie gesagt: unterhalb von htdocs gehoert sowas nicht hin.
Werde ich versuchen anzupassen.
s.o.
PS: Ohne Dich David hätte ich vorher aufgegeben.
*g* Unter Linux lohnt sich's nicht aufzugeben! -dnh -- GETOPT(3) BUGS This manpage is confusing.
Am Dienstag, den 31.01.2006, 05:56 +0100 schrieb David Haller:
Am Mon, 30 Jan 2006, Ralph Müller schrieb:
Ich glaube wir haben das Rätsel zum größten Teil lösen können.
(Nachtrag: Mit "wir" meinte ich David und mich.)
my $pause = <>;
Makefile.PL sollte in dieser Situation _explizit_ von STDIN lesen. Machst du den Bugreport?
Offenbar ist Tim Bunce der Maintainer. Bei Problemen solle man sich aber nicht an ihn, sondern an eine Mailingliste wenden. Ich möchte mich momentan allerdings nicht extra wegen eines Zweizeilers auf einer Mailingliste subscriben, mailen und wieder unsubscriben müssen. Nach einigem Googlen bin ich dann endlich auf eine Mailadresse von "Mr.DBI" gestoßen: Tim.Bunce@ig.co.uk Leider kam auf meine Mail nur eine Zustellfehlermeldung "User unknown" zurück. Diese Mailadresse ist offenbar nicht mehr gültig. Vielleicht merkt Tim die Gefräßigkeit von "my $pause = <>" in naher Zukunft auch so. LG, Ralph
Hallo, Am Wed, 01 Feb 2006, Ralph Müller schrieb:
Am Dienstag, den 31.01.2006, 05:56 +0100 schrieb David Haller:
Am Mon, 30 Jan 2006, Ralph Müller schrieb:
Ich glaube wir haben das Rätsel zum größten Teil lösen können.
(Nachtrag: Mit "wir" meinte ich David und mich.)
my $pause = <>;
Makefile.PL sollte in dieser Situation _explizit_ von STDIN lesen. Machst du den Bugreport?
Offenbar ist Tim Bunce der Maintainer. Bei Problemen solle man sich aber nicht an ihn, sondern an eine Mailingliste wenden. Ich möchte mich momentan allerdings nicht extra wegen eines Zweizeilers auf einer Mailingliste subscriben, mailen und wieder unsubscriben müssen.
Server: nntp.perl.org Gruppe: perl.dbi.users ;) Generell kannst du dir auch noch news.gmane.org als Server verwenden, da finden sich recht viele interessante Gruppen und ge"gated"te Mailinglisten, z.B. diese hier als gmane.linux.suse.programming :) -dnh -- "Wir werden knapp aber deutlich vor der SPD liegen" -- Ede Stoiber, 21.09.02 [Ja wie, knapp _oder_ deutlich? -- ich dazu]
participants (2)
-
David Haller
-
Ralph Müller