PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Perl (managesieve.pm) - "Modul wird nicht gefunden"



tschloss
19.11.06, 16:37
Hi,
wollte eben auf meinem Cyrus IMAP-Server mal mein Sieve-Skript etwas optimieren - leider läuft das Perl-Programm "sieveshell" nicht mehr :(

Bekomme folgenden Fehler:

Can't locate loadable object for module Cyrus::SIEVE::managesieve in @INC (@INC contains: /usr/local/lib/perl5/5.8.8/i686-linux /usr/local/lib/perl5/5.8.8 /usr/local/lib/perl5/site_perl/5.8.8/i686-linux /usr/local/lib/perl5/site_perl/5.8.8 /usr/local/lib/perl5/site_perl .) at /usr/bin/sieveshell line 44
Compilation failed in require at /usr/bin/sieveshell line 44.
BEGIN failed--compilation aborted at /usr/bin/sieveshell line 44.

Ok, da hat der Kollege Recht, das Modul liegt unter /usr/lib/perl5/vendor_perl/5.8.6/i586-linux-thread-multi/ (...Cyrus/SIEVE)

Habe nun folgende Versuche unternommen, es dem Kollegen beizubiegen:

Im Perl-Skript sieveshell durch Hinzufügen eines -I/usr/..... in die Perl-exec Zeile
Durch einen symbolischen Link auf das Cyrus-Verzeichnis mit dem Namen Cyrus in eines der @INC-Verzeichnisse
Durch hartes Kopieren des Cyrus-Verzeichnisses in eines der @INC-Verzeichnisse

File/Verzeichnis-Rechte bei (3) waren 755.

Leider hat sich die Fehlermeldung in keinem Jota geändert :mad:

System = SUSE 9.3 mit dem "Original"-Cyrus von der DVD.

Jmd. eine Idee? Thx.

michael.sprick
19.11.06, 17:11
Hi tschloss,

das Modul ansich wird gefunden. Allerdings sieht es so aus, als sei es nicht korrekt installiert worden. Es kann zum Beispiel sein, dass das Modul nicht pure-perl, sondern teilweise in C geschrieben ist. Wenn der C Teil garnicht oder fehlerhaft kompiliert wurde, tritt so eine Fehlermeldung auf.

Ich würde schauen, ob es eine Möglichkeit gibt, das Modul erneut zu installieren. Evtl. über die cpan shell oder vllt. als RPM.

Deine Kopier- und Verlinkaktionen solltest Du in jedem Fall schonmal rückgängig machen!

tschloss
19.11.06, 18:30
Hi tschloss,

das Modul ansich wird gefunden. Allerdings sieht es so aus, als sei es nicht korrekt installiert worden. Es kann zum Beispiel sein, dass das Modul nicht pure-perl, sondern teilweise in C geschrieben ist. Wenn der C Teil garnicht oder fehlerhaft kompiliert wurde, tritt so eine Fehlermeldung auf.

Ich würde schauen, ob es eine Möglichkeit gibt, das Modul erneut zu installieren. Evtl. über die cpan shell oder vllt. als RPM.

Deine Kopier- und Verlinkaktionen solltest Du in jedem Fall schonmal rückgängig machen!

Danke.
Das "loadable object module" hat mich auch schon stutzig gemacht. Da es ja schon mal funktionierte, muss das Ding ja noch irgendwo sein-ich jage nochmals einen find über die Platte.

/edit: here we are:

168836 4 -rw-r--r-- 1 root root 260 Mar 19 2005 ./var/adm/perl-modules/perl-Cyrus-SIEVE-managesieve
132224 0 drwxr-xr-x 2 root root 144 Jul 2 2005 ./usr/lib/perl5/vendor_perl/5.8.6/i586-linux-thread-multi/auto/Cyrus/SIEVE/managesieve
132226 0 -r--r--r-- 1 root root 0 Mar 19 2005 ./usr/lib/perl5/vendor_perl/5.8.6/i586-linux-thread-multi/auto/Cyrus/SIEVE/managesieve/managesieve.bs
132227 160 -rwxr-xr-x 1 root root 160607 Mar 19 2005 ./usr/lib/perl5/vendor_perl/5.8.6/i586-linux-thread-multi/auto/Cyrus/SIEVE/managesieve/managesieve.so
132225 4 -rw-r--r-- 1 root root 336 Mar 19 2005 ./usr/lib/perl5/vendor_perl/5.8.6/i586-linux-thread-multi/auto/Cyrus/SIEVE/managesieve/.packlist
132222 4 -r--r--r-- 1 root root 3660 May 25 2002 ./usr/lib/perl5/vendor_perl/5.8.6/i586-linux-thread-multi/Cyrus/SIEVE/managesieve.pm

Wie sucht Perl denn diese ".bs"/".so"-Module? Laut Fehlermeldung ja auch im @INC.

Re-Installieren traue ich mich nicht, weil Sieve ja an IMAP hängt und ich habe Angst davor, dass ich da wieder eine Lawine von Abhängigkeiten bekommen werde. Und meinen IMAP-Server brauche ich dringender als das Sieve Teil.
Ich hatte neulich schon mal Stress mit einem Re-Install von Spamassassin via CPAN. Das war auch eine längere Orgie mit am Ende nur 90% Erfolg (sa-learn meldet immer noch irgendwelche nicht erfüllten Abhängigkeiten (Perl-Version, wenn ich mich recht erinnere).