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
error:

******************************************************
Can't locate Cyrus/IMAP/Shell.pm 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/i686-linux
/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.

Nix.
---
Cyrus Home Page: http://asg.web.cmu.edu/cyrus
Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html

Reply via email to