Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]11366[/thread]

@INC ändern?

Leser: 5


<< >> 7 Einträge, 1 Seite
Gast Gast
 2008-02-26 19:15
#106370 #106370
Hi.

Ich habe vor kurzem Oracle installiert, seitdem funktionieren einige Perlmodule nichtmehr.
Nach etwas Sucherei bin ich dem Problem auf die Schliche gekommen.
Oracle schreibt scheinbar Pfade in @INC, die zu Modulen für eine ältere Perlversion führen (5.8.3).
Nun bekomme ich beim Ausführen meiner Scripts Fehlermeldungen wie diese hier:
Code: (dl )
1
2
3
Perl lib version (v5.8.3) doesn't match executable version (v5.10.0) at D:\
Programs\oracle\product\10.2.0\db_1\perl\5.8.3\lib/MSWin32-x86-multi-thread
/Config.pm line 32.


System-Infos: WindowsXP SP2, ActivePerl 5.10.0.1002

Ich habe Perl schon neu installiert, in der Hoffnung dass @INC dann überschrieben wird, aber das war leider nicht der Fall.

Weiss jemand, wie ich diese Pfade wieder aus @INC rausbekomme?
Eine Neuinstallation von Oracle möchte ich umgehen, hatte bei der
Einrichtung einige Probleme, die ich nicht nochmal lösen will.

Hier mal der Inhalt von @INC:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
D:\Programs\oracle\product\10.2.0\db_1\perl\5.8.3\lib\MSWin32-x86
D:\Programs\oracle\product\10.2.0\db_1\perl\5.8.3\lib/MSWin32-x86-multi-thread
D:\Programs\oracle\product\10.2.0\db_1\perl\5.8.3\lib
D:\Programs\oracle\product\10.2.0\db_1\perl\5.8.3\lib\MSWin32-x86
D:\Programs\oracle\product\10.2.0\db_1\perl\site\5.8.3
D:\Programs\oracle\product\10.2.0\db_1\perl\site\5.8.3\lib/MSWin32-x86-multi-thread
D:\Programs\oracle\product\10.2.0\db_1\perl\site\5.8.3\lib
D:\Programs\oracle\product\10.2.0\db_1\sysman\admin\scripts
C:/Perl/site/lib
C:/Perl/lib
.


Ich hoffe es kann mir jemand helfen.

Gruß, ~br4inp4in~
Gast Gast
 2008-02-27 02:09
#106398 #106398
Habe nun nach langer Suche selbst eine Lösung gefunden.

Oracle hat die Pfade nicht direkt in @INC, sondern in die
Windows-Environmentvariable %PERL5LIB% geschrieben.
Diese lässt sich entweder per Commandline mit
Code: (dl )
set PERL5LIB=

ändern, oder aber in der Registry unter:
Code: (dl )
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Session Manager\Environment


Nach dem leeren der Variable funktioniert wieder alles einwandtfrei,
bis jetzt habe ich auch keinen fehler beim Ausführen von Oracle bemerkt,
selbstverständlich habe ich für den Fall der Fälle ein Backup der Variable erstellt.

Vielleicht hilft das ja jemandem, schneller an die Lösung des Problems zu kommen ;)

Gruß, ~br4inp4in~
Struppi
 2008-02-27 09:10
#106403 #106403
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
Das sieht für mich nach einer verunglückten Installation aus.
Diese beiden Pfade:
..\MSWin32-x86
../MSWin32-x86-multi-thread

sind ppm intern und ich habe noch nie gesehen, dass diese in @INC geschrieben werden. Du nutzt nicht ppm zum installieren von Modulen?
Gast Gast
 2008-02-27 16:24
#106428 #106428
Doch, ich nutze ppm zur Modulinstallation...

Die Pfade kamen mir auch komisch vor...
vorallem deswegen, weil einer der beiden mit einem gewöhnlichen "/" anfängt.
Naja, soweit funktioniert ja wieder alles.
Was ist denn bei euch die Ausgabe, wenn ihr in der Commandline
Code: (dl )
echo %PERL5LIB%

eingebt? Würde mich interessieren, ob da bei mir was überschrieben wurde,
oder ob die Variable standardmäßig leer ist.

Gruß, ~br4inp4in~
GwenDragon
 2008-02-27 16:31
#106430 #106430
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
PERL5LIB wird nicht durch PPM gesetzt.
Entweder hast du das gemacht oder das Installationsprogramm für Oracle+Perl.

Oracle bringt möglicherweis ein eigenes eigenes Perl mit.
Ich weiß ja nicht, was du installiert hast.
Gast Gast
 2008-02-27 16:58
#106431 #106431
Es lag meiner Meinung nach definitiv an der Oracle-Installation.
Ich selbst habe die Variable nicht geändert und es ist ja unschwer
zu erkennen, dass die Pfade, die in der Variablen standen,
alle nach D:\Programs\oracle\ führen.
die letzten 3 Pfade sind ja die Standardpfade, die auch noch nach
dem Leeren von %PERL5LIB% der Variablen in @INC standen.

Habe ich das richtig verstanden, dass %PERL5LIB% also standardmäßig
leer ist?

Gruß, ~Br4inP4in~

OT: Könnte mir ein Admin bitte ein neues Passwort für meinen Account
~Br4inP4in~ zusenden? Kann mich komischerweise nichtmehr einloggen...
Struppi
 2008-02-28 11:43
#106452 #106452
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
Gast+2008-02-27 15:58:07--
Habe ich das richtig verstanden, dass %PERL5LIB% also standardmäßig
leer ist?
Bei mir ja:

Code: (dl )
1
2
3
4
5
6
7
This is perl, v5.8.8 built for MSWin32-x86-multi-thread
(with 33 registered patches, see perl -V for more detail)

Copyright 1987-2006, Larry Wall

Binary build 819 [267479] provided by ActiveState http://www.ActiveState.com
Built Aug 29 2006 12:42:41
<< >> 7 Einträge, 1 Seite



View all threads created 2008-02-26 19:15.