Perl upgrade broke cyradm

Nikola Milutinovic Nikola.Milutinovic at
Tue Mar 8 03:13:43 EST 2005

Doug Koobs wrote:

>I recently upgraded my installation of Perl from 5.8.0 (in
>/usr/lib/perl5) to 5.8.6 (in /usr/local/lib/perl5) using CPAN. I didn't
>catch the difference in location when I installed... Now, when I try to
>run the command "cyradm --user cyrus --auth login localhost" I got the
>Can't locate Cyrus/IMAP/ in @INC (@INC contains:
>/usr/local/lib/perl5/5.8.6/i686-linux /usr/local/lib/perl5/5.8.6
>/usr/local/lib/perl5/site_perl/5.8.6 /usr/local/lib/perl5/site_perl .).
>BEGIN failed--compilation aborted

In my oppinion, the best way to avoid or at least minimize this kind of 
hassle, is to configure Cyrus build process to place Perl modules some 
place tied to the Cyrus version, rather than Perl version.

I build my own packages on Tru64 UNIX and I follow old DEC's philosphy 
of package layout. All package files are under 
/usr/opt/Cyrus-IMAP4-${VERSION}, all runtame changable files (mailboxes, 
config, ...) are unde /var/opt/Cyrus-IMAP4-${VERSION} and 
/opt/Cyrus-IMAP4-${VERSION} holds startup scripts. Installation routines 
make needed symbolic links.

This setup enables me to instruct Cyrus-Perl to use 
/usr/opt/Cyrus-IMAP4-${VERSION} as installation prefix, so all Perl 
files are in /usr/opt/Cyrus-IMAP4-${VERSION}/lib. The only thing I need 
to do after the initial, pre-package, install is to add the "-I..." to 
cyradm script.

I'm not sure how this idea would be implemented in Linux environment, 
but it is a good way to deal with this problem. For what it's worth, it 
works for me on Tru64.

Cyrus Home Page:
Cyrus Wiki/FAQ:
List Archives/Info:

More information about the Info-cyrus mailing list