Can't locate Cyrus/SIEVE/managesieve.pm

Paul Boven p.boven at chello.nl
Tue Jul 11 11:08:46 EDT 2006


Hi Alex,

alexp at beautybase.com wrote:
> I have installed Cyrus+SIEVE and i can even see SIEVE running if i telnet
> to the 2000 port, but if i run  sieveshell
> I get the following error.
> 
> Can't locate Cyrus/SIEVE/managesieve.pm in @INC (@INC contains:
> /usr/lib/perl5/5.8.3/i386-linux-thread-multi /usr/lib/perl5/5.8.3
> /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi
> /usr/lib/perl5/site_perl/5.8.2/i386-linux-thread-multi
> /usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi
> /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi
> /usr/lib/perl5/site_perl/5.8.3 /usr/lib/perl5/site_perl/5.8.2
> /usr/lib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl/5.8.0
> /usr/lib/perl5/site_perl
> /usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi
> /usr/lib/perl5/vendor_perl/5.8.2/i386-linux-thread-multi
> /usr/lib/perl5/vendor_perl/5.8.1/i386-linux-thread-multi
> /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi
> /usr/lib/perl5/vendor_perl/5.8.3 /usr/lib/perl5/vendor_perl/5.8.2
> /usr/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl/5.8.0
> /usr/lib/perl5/vendor_perl .) at /usr/local/bin/sieveshell line 44.
> BEGIN failed--compilation aborted at /usr/local/bin/sieveshell line 44.
> 
> but the module is there
> 
> locate /managesieve.pm
> /usr/local/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi/Cyrus/SIEVE/managesieve.pm
> /usr/local/src/cyrus-imapd-2.2.12/perl/sieve/managesieve/managesieve.pm
> /usr/local/src/cyrus-imapd-2.2.12/perl/sieve/managesieve/blib/lib/Cyrus/SIEVE/managesieve.pm
> /usr/local/src/cyrus-imapd-2.2.13/perl/sieve/managesieve/managesieve.pm
> /usr/local/src/cyrus-imapd-2.2.13/perl/sieve/managesieve/blib/lib/Cyrus/SIEVE/managesieve.pm
> /opt/cyrus-imapd-2.2.12/perl/sieve/managesieve/managesieve.pm
> /opt/cyrus-imapd-2.2.12/perl/sieve/managesieve/blib/lib/Cyrus/SIEVE/managesieve.pm
> 
> 
> 
> Please help. I have wasted 2 days already. Re-installed from scratch the
> whole system number of times. What i am actually is trying to archive is
> to create SIEVE script which will be placing 'users' spam messages (marked
> as a SPAM in the subj. field by SpamAssassin) into user.$user.Spam folder.

The failure-message tells you that sieveshell cannot locate the 
managesieve.pm, and also all the places where it looked. So there are 
two possible solutions: either tell perl to also look in /usr/local/lib 
for managesieve.pl, or to install the perl parts of Cyrus not in 
/usr/local but in /usr/lib/perl5. I've opted for the second solution, 
and every time I build Cyrus, I apply a simple patch (included).
The only drawback it has is that sieveshell itself will be installed in 
/usr/lib/perl5 as well.
The patch can be installed by doing:

cd cyrus-imapd-2.2.12
make distclean
patch -p1 < cyrus-imapd-perl_prefix.patch
./configure <any options>
make

Regards, Paul Boven.
-------------- next part --------------
--- cyrus-imapd-2.2.10/perl/Makefile.in.org	Thu Aug  5 18:26:15 2004
+++ cyrus-imapd-2.2.10/perl/Makefile.in	Thu Aug  5 18:26:25 2004
@@ -82,7 +82,7 @@
 			   BDB_LIB="$(BDB_LIB)" BDB_INC="$(BDB_INC)" \
 			   OPENSSL_LIB="$(OPENSSL_LIB)" OPENSSL_INC="$(OPENSSL_INC)" \
 			   SASL_LIB="$(SASL_LIB)" SASL_INC="$(SASL_INC)" CC="$(CC)" \
-			     $(PERL) Makefile.PL PREFIX=$(prefix); \
+			     $(PERL) Makefile.PL; \
 			fi; \
 			$(MAKE) $(MFLAGS) DESTDIR=$(DESTDIR) all) || exit 1; \
 	done
--- cyrus-imapd-2.2.10/perl/sieve/Makefile.in.org	Thu Aug  5 18:30:19 2004
+++ cyrus-imapd-2.2.10/perl/sieve/Makefile.in	Thu Aug  5 18:30:35 2004
@@ -84,7 +84,7 @@
 			   BDB_LIB="$(BDB_LIB)" BDB_INC="$(BDB_INC)" \
 			   OPENSSL_LIB="$(OPENSSL_LIB)" OPENSSL_INC="$(OPENSSL_INC)" \
 			   SASL_LIB="$(SASL_LIB)" SASL_INC="$(SASL_INC)" CC="$(CC)" \
-			     $(PERL) Makefile.PL PREFIX=$(prefix); \
+			     $(PERL) Makefile.PL; \
 			fi; \
 			$(MAKE) $(MFLAGS) DESTDIR=$(DESTDIR) all) || exit 1; \
 	done


More information about the Info-cyrus mailing list