Module nicht im Systempfad installieren und trotzdem testen können
am 29.11.2006 08:06:50 von Gregor GoldbachMoin,
ich habe folgendes Problem: Module, die nicht im Systempfad
installiert sind, werden bei Tests nicht gefunden (Kurzfassung). Die lange
Fassung:
Ich installiere Module nicht im Systempfad (/usr/lib/perl5 hier), weil ich
das nicht darf oder es aus verschiedenen Gründen nicht möchte.
Der entsprechende Installationspfad ist aber in der Umgebungsvariablen
PERLLIB eingetragen, so dass bei der normalen Ausführung mit dem
Perlinterpreter alles funktioniert.
Bei Tests oder der CPAN-Shell ist das jedoch anders. :(
ExtUtils::MakeMaker und Module::Build manipulieren @INC derart, dass
PERLLIB vollständig ignoriert wird. Das ist sehr misslich, wenn der zu
testende Code eben jene Module benötigt, die nicht im Systempfad
installiert sind.
Die Tests finden die Module, wenn man sie mit 'perl t/test.t' oder 'prove
t/test.pl' aufruft, aber eben nicht, wenn man 'make test' sagt.
Dementsprechend schlagen die Tests in der CPAN-Shell natürlich auch fehl,
wenn ich bei den Makefile.PL-Optionen z.B. 'PREFIX=
habe.
Wo steckt mein Denkfehler? Kann ich nur richtig testen, wenn ich root bin? ;-)
--
Gregor Goldbach (PKI), DFN-CERT Services GmbH
https://www.dfn-cert.de, +49 40 808077-621 / +49 40 808077-555 (Hotline)