use funzt nicht
am 17.10.2006 21:23:13 von helmut_nospam
Hallo NG,
habe mir ein Steuermodul(.pl) und zwei .pm Module gebastelt.
Das Steuermodul liegt auf meinem Webserver im cgi-bin Verzeichnis.
Direkt darunter ist ein Verzeichnis 'perl_packages', wo die beiden=20
selbstgestrickten pm-Module liegen (neben einigen *offiziellen* Modulen von=
=20
ActiveState).
Im Kopf des pl-Steuermoduls steht:
use lib '/perl_packages';
Wenn ich das Steuerskript aufrufe kommt aber die Meldung:
Can't locate mymodul.pm in @INC (@INC contains: /perl_packages=20
/usr/lib/perl5/5.8.1/i586-linux-thread-multi /usr/lib/perl5/5.8.1=20
..........................
/usr/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl .) at myscript.=
pl=20
line 12.
BEGIN failed--compilation aborted at myscript.pl line 12.
Obwohl das Verzeichnis also in der @INC-Liste ist und die beiden Module=20
garantiert da drin sind, kann er sie nicht finden.
Bei den ActiveState-Modulen gibt es übrigens keine Probleme, nur bei den=
=20
selbstgestrickten.=20
Und wenn ich die pm-Module auch ins cgi-bin Verzeichnis stecke, klappt es=20
auch. Ist allerdings keine schöne Lösung, alle möglichen Module direk=
t im=20
cgi-bin zu speichern....
Gruss, Helmut
=20
Re: use funzt nicht
am 17.10.2006 22:17:32 von Frank Seitz
Helmut Blass wrote:
> use lib '/perl_packages';
Ist Dir klar, dass der Pfad sich auf das Dateisystem
des Rechners bezieht und nicht auf das DocumentRoot-Verzeichnis
des Webserves?
Grüße
Frank
--
Dipl.-Inform. Frank Seitz; http://www.fseitz.de/
Anwendungen für Ihr Internet und Intranet
Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel
Re: use funzt nicht
am 17.10.2006 22:45:21 von helmut_nospam
In article <4pks34Fj785qU1@individual.net>, Frank Seitz
> wrote:
>Helmut Blass wrote:
>
>> use lib '/perl_packages';
>
>Ist Dir klar, dass der Pfad sich auf das Dateisystem
>des Rechners bezieht und nicht auf das DocumentRoot-Verzeichnis
>des Webserves?
Mit der vollständigen Pfadangabe beginnend mit /home... funzt es aber auc=
h=20
nicht. Und die ActiveState-Module machen, wie schon gesagt, da überhaupt =
keine=20
Probleme. Die werden auch gefunden mit use lib '/perl_packages';
Helmut
Re: use funzt nicht
am 17.10.2006 23:01:43 von Frank Seitz
Helmut Blass wrote:
> In article <4pks34Fj785qU1@individual.net>, Frank Seitz wrote:
>>Helmut Blass wrote:
>>>
>>>use lib '/perl_packages';
>>
>>Ist Dir klar, dass der Pfad sich auf das Dateisystem
>>des Rechners bezieht und nicht auf das DocumentRoot-Verzeichnis
>>des Webserves?
>
> Mit der vollständigen Pfadangabe beginnend mit /home... funzt es aber auch
> nicht.
Das mag sein. Das ändert nichts daran, dass dieser absolute Pfad
nicht bezüglich DocumentRoot interpretiert wird. Läuft der
Webserver vielleicht in einer chroot-Umgebung?
> Und die ActiveState-Module machen, wie schon gesagt, da überhaupt keine
> Probleme. Die werden auch gefunden mit use lib '/perl_packages';
Vielleicht meinst Du das nur, aber sie werden tatsächlich über
einen anderen Pfad gefunden?
Grüße
Frank
--
Dipl.-Inform. Frank Seitz; http://www.fseitz.de/
Anwendungen für Ihr Internet und Intranet
Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel
Re: use funzt nicht
am 17.10.2006 23:06:38 von Frank Wiegand
Helmut Blass schrieb:
>>> use lib '/perl_packages';
>> Ist Dir klar, dass der Pfad sich auf das Dateisystem
>> des Rechners bezieht und nicht auf das DocumentRoot-Verzeichnis
>> des Webserves?
> Mit der vollständigen Pfadangabe beginnend mit /home... funzt es aber auch
> nicht.
Wie sieht dein Code aus? Wie lautet die Fehlermeldung? Suchst du vielleicht
FindBin? Hast du Groß- und Kleinschreibung bei Dateinamen bedacht?
> Und die ActiveState-Module machen, wie schon gesagt, da überhaupt keine
> Probleme. Die werden auch gefunden mit use lib '/perl_packages';
Du nutzt ActivePerl für UNIX? Wieso sagst du das nicht gleich?
So ganz verstehe ich dein OP nicht, aber
use lib 'perl_packages';
sollte tun.
Frank
Re: use funzt nicht
am 18.10.2006 16:25:43 von Ferry Bolhar
Helmut Blass:
>> Das Steuermodul liegt auf meinem Webserver im cgi-bin Verzeichnis.
>> Direkt darunter ist ein Verzeichnis 'perl_packages', wo die beiden
[...]
> Mit der vollständigen Pfadangabe beginnend mit /home... funzt es aber auch
> nicht.
Könntest du vielleicht mal die beteiligten Pfade alle _vollständig_ posten?
> Und die ActiveState-Module machen, wie schon gesagt, da überhaupt keine
> Probleme. Die werden auch gefunden mit use lib '/perl_packages';
Das kann ich nicht nachvollziehen. Bist du sicher, dass die AS-Module
aus /perl_packages geladen werden? Schau mal, was dein Code mit
print "$_ = $INC{$_}\n" foreach keys %INC;
rausschreibt. Ist da /perl_packages dabei?
Was mir noch einfällt: passt die Permission? Eine Moduldatei sollte
normalerweise auch von "other" lesbar sein (und das Verzeichnis,
in dem sie sich befindet, ebenfalls).
LG, Ferry
--
Ing Ferry Bolhar
Magistrat der Stadt Wien - MA 14
A-1010 Wien
E-Mail: bol@adv.magwien.gv.at
Re: use funzt nicht
am 19.10.2006 22:22:52 von helmut_nospam
In article <453545aa$0$32426$9b4e6d93@newsspool1.arcor-online.net>, Frank W=
iegand wrote:
> > Und die ActiveState-Module machen, wie schon gesagt, da überhaupt kei=
ne
>> Probleme. Die werden auch gefunden mit use lib '/perl_packages';
>
>Du nutzt ActivePerl für UNIX? Wieso sagst du das nicht gleich?
Was spielt das für eine Rolle? Das sind einfach stinknormale Textdateien,=
wie=20
die vom CPAN..
Re: Use funktioniert nicht (was: use funzt nicht)
am 21.10.2006 14:49:52 von Michael Perle
Helmut Blass wrote:
> In article <453545aa$0$32426$9b4e6d93@newsspool1.arcor-online.net>, Frank Wiegand wrote:
>
>
>>>Und die ActiveState-Module machen, wie schon gesagt, da überhaupt keine
>>>Probleme. Die werden auch gefunden mit use lib '/perl_packages';
Die werden gefunden, weil die Perl-Binary sie per
Voreinstellung findet. Die sind mit Sicherheit in
/usr/lib/perl5/vendor_perl/5.8.1
oder so.
Wenn Du Root-Zugang hast, kannst Du _testweise_
mal einen symbolischen Link von dort auf Dein
Modul machen oder Deine Module dorthin kopieren.
Die ersten Fehlermeldung, die Du bekamst, hat
verraten, wo Dein Perl nach Modulen sucht.
MP