Schrift
[thread]11421[/thread]

Modul wird plötzlich nicht mehr gefunden?



<< >> 9 Einträge, 1 Seite
moritz
 2008-03-06 16:16
#106679 #106679
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
RalphFFM+2008-03-06 12:59:57--
Ich weiß nicht ob sich seitdem etwas auf diesem fremden Webserver verändert hat. Da muß ich beim Provider nachfragen. :-(


Wenn auf dem Webserver ein neues Perl installiert wurde, kann es sein, dass du die Module neu kompilieren musst. Das ist zwar nicht schön vom Provider, das ohne Ankündigung zu tun, passiert aber doch immer mal wieder.

zu den Umgebungsvariablen: ich hätte jetzt nach PERL5_LIB, PERL_LIB und allem, was ein LD im Namen hat gesucht. Aber ob das hilft... keine Ahnung.
RalphFFM
 2008-03-06 17:47
#106682 #106682
User since
2006-11-16
258 Artikel
BenutzerIn
[Homepage] [default_avatar]
moritz hat ein Bier gut. (-> Wann besuchst Du mal frankfurt.pm?)

Habs Problem beheben können. Der Provider hatte Perl upgedatet, auf Version 5.8.8. Das kleinwenig Positive an der Sache ist, daß nun eine gesonderte Installation von DBI nicht mehr notwendig ist.

Nochmals Danke!
RalphFFM
 2008-03-06 13:02
#106752 #106752
User since
2006-11-16
258 Artikel
BenutzerIn
[Homepage] [default_avatar]
Code: (dl )
1
2
3
4
5
6
7
Software error:

install_driver(SQLite) failed: Can't locate DBD/SQLite.pm in @INC (@INC contains: myLibs /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl .) at (eval 6) line 3.
Perhaps the DBD::SQLite perl module hasn't been fully installed,
or perhaps the capitalisation of 'SQLite' isn't right.
Available drivers: CSV, DBM, ExampleP, File, Proxy, Sponge, XBase, mysql.
...

Das Skript läuft schon etwa 2 Jahre problemlos. Plötzlich nicht mehr. Das Skript wurde nicht verändert und die .pm-Dateien scheinen weiterhin auch noch vorhanden. SQLite.pm ist wie eh und je im (privaten) Verzeichnis myLibs/i386-linux/DBD/SQLite.pm installiert. Ebenso DBI hatte ich damals in ein privates Verzeichnis installiert.

Der Fehler tritt offenbar auf beim ersten Connect:
$dbh = DBI->connect('dbi:SQLite:dbname=daten.db','','',{RaiseError => 1}) || die "Problem mit connect: $DBI::errstr\n";
Das hat aber wie gesagt schon jahrelang funktioniert. Bin echt aufgeschmissen. Hat wer eine Idee wo der Fehler stecken könnte?

Ich bitte Euch um Hilfe. Falls jemand von frankfurt.pm hier den richtigen Riecher zu der Fehlerursache hat dem gebe ich beim nächsten Treffen z.B. ein Bier aus!

Danke + Gruß, Ralph
nepos
 2008-03-06 13:11
#106753 #106753
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hm, "DBD/SQLite.pm" ist doch aber unter "myLibs/i386-linux/DBD/SQLite.pm" und nicht unter "mylibs/DBD/SQLite.pm". Der erste Eintrag in @INC scheint da nicht zu passen oder?
moritz
 2008-03-06 13:38
#106755 #106755
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
@INC enthält einen relativen Pfad, myLibs. Wenn du das Script aus einem anderen Verzeichnis heraus aufrufst, funktioniert der nicht mehr gewohnt.
RalphFFM
 2008-03-06 13:42
#106756 #106756
User since
2006-11-16
258 Artikel
BenutzerIn
[Homepage] [default_avatar]
Ich habe nun im Skript zwei Verzeichnisse explizit hinzugefügt:
Code (perl): (dl )
1
2
3
use lib 'myLibs';  # wie bisher
use lib 'myLibs/i386-linux';  # hinzugefügt
use lib 'myLibs/i386-linux/DBD';  # hinzugefügt

Nun gibt es folgende Fehlermeldung:
Code: (dl )
1
2
3
4
5
Software error:
Can't load 'myLibs/i386-linux/auto/DBI/DBI.so' for module DBI: myLibs/i386-linux/auto/DBI/DBI.so: undefined symbol: PL_dowarn at /usr/lib/perl/5.8/DynaLoader.pm line 225.
at myLibs/i386-linux/DBI.pm line 255
BEGIN failed--compilation aborted at myLibs/i386-linux/DBI.pm line 255.
Compilation failed in require at /homepages/37/d19249310/htdocs/kompass/kompass.cgi line 18.

Was bedeutet das mit dem "undefined symbol" und "compilation aborted"?

Danke + Gruß, Ralph

PS/edit: Das Skript ist ein CGI-Skript / remote / fremder Rechner.
moritz
 2008-03-06 13:46
#106757 #106757
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
Das könnte z.B. beideuten, dass die Versionen von DBI.so und DBI.pm nicht zusammenpassen.

Hast du in letzter Zeit irgend welche Umgebungsvariablen verändert? Das könnte dazu führen, dass die falsche Version einer Datei gefunden wird.

Was für ein System ist das denn? Und wieso benutzt du keine Module, die vom Linux mitgelifert werden?
RalphFFM
 2008-03-06 13:59
#106758 #106758
User since
2006-11-16
258 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo @moritz,

natürlich benutze ich am liebsten die mitgelieferten Module. Vor 2 Jahren mußte ich DBI und DBD::SQLite in ein privates Verzeichnis installieren, weil das installierte DBI zu alt für das Modul DBD::SQLite war. Ich weiß nicht ob sich seitdem etwas auf diesem fremden Webserver verändert hat. Da muß ich beim Provider nachfragen. :-(

Hat undefined symbol hier vielleicht etwas zu tun mit dem installierten Betriebssystemversion oder Perlversion? Kann man das irgendwie noch besser eingrenzen zwecks genauerer Nachfrage?

Das Skript hat jahrelang funktioniert. Ich selbst hab da nichts verändert.

Welche Umgebungsvariablen sollte ich prüfen?

Danke weiterhin! -Ralph
moritz
 2008-03-07 11:59
#106777 #106777
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
Bitteschön. Ich hab noch keine Ahnung, wann ich nach Frankfurt komme, aber wenn, dann melde ich mich.

Apropos... Kennt jemand Würzburger Perl-Programmierer? Wenn es da welche gibt, könnte ich Wü.pm aufmachen ;-)
<< >> 9 Einträge, 1 Seite



View all threads created 2008-03-06 13:02.