"Can't locate loadable" Perl module when running cyradm

Conrad Kleinespel conradk at conradk.com
Mon May 18 18:58:26 EDT 2015


Hello,

I have finally got cyradm to connect to the Cyrus server through SASL.
I'm documenting what I did for convenience and so it's written
somewhere. Maybe it can help others.

I installed "saslpasswd2" with:
    sudo apt-get install sasl2-bin

I launched the saslauth daemon with the following command:
    sudo -g sasl saslauthd -a sasldb -d -m /var/run/saslauthd/ -V

I setup a user with:
    sudo saslpasswd2 -c conradk

I tested that the user was OK with:
    sudo testsaslauthd -u conradk -p secret_password

I gave access to saslauthd to Cyrus with (I recommend not setting these
permissions in production unless you are sure you know the implications,
I don't, but this is for local development on my machine):
    sudo usermod -aG sasl cyrus
    sudo usermod -aG sasl conradk
    sudo setfacl -dRm g:sasl:rwx /var/run/saslauthd
    sudo setfacl -Rm  g:sasl:rwx /var/run/saslauthd
    sudo setfacl -dRm g:mail:rwx /var/run/saslauthd
    sudo setfacl -Rm  g:mail:rwx /var/run/saslauthd
    sudo setfacl -dRm u:cyrus:rwx /var/run/saslauthd
    sudo setfacl -Rm u:cyrus:rwx /var/run/saslauthd
    sudo setfacl -dRm u:conradk:rwx /var/run/saslauthd
    sudo setfacl -Rm u:conradk:rwx /var/run/saslauthd

Then, something like this should work (note I execute the command as the
"cyrus" user):
    sudo -u cyrus testsaslauthd -u cyrus -p secret_password

I connected to Cyrus with cyradm from within Docker like this:
    cyradm --user cyrus --notls --auth PLAIN $docker_host_ip

For completeness, here's my /etc/imapd.conf file:
    configdirectory: /home/conradk/.cyrus-server/var/imap
    partition-default: /home/conradk/.cyrus-server/var/spool/imap
    admins: conradk
    sasl_pwcheck_method: saslauthd
    allowplaintext: yes

Note that I set "allowplaintext" to "yes" and "sasl_pwcheck_method" is
set to "saslauthd", which is what I'm using in the examples above.

Best regards,

Conrad Kleinespel
conradk at conradk.com
+33 6 23 82 42 79

On Mon, May 18, 2015, at 11:22 AM, Conrad Kleinespel wrote:
> Hello again,
> 
> I have not yet found a way to run "cyradm" directly on my machine. So I
> downloaded the Docker images (from
> https://git.cyrus.foundation/diffusion/ID/) and now I can run "cyradm"
> from within Docker. This seems to work as expected: I can connect to the
> Docker host from within a container.
> 
> However, when I run something like "cyradm --user conradk 172.17.42.1"
> (when the IP is the IMAP server's IP), "cyradm" requires a password.
> >From what I understand after some Google searches, I need to use a tool
> called "saslpasswd2" to set the password of my admin user. This tools is
> apparently not in the Docker image.
> 
> So I went to download Cyrus SASL (from
> https://git.cyrus.foundation/diffusion/S/). I followed the instructions
> from "doc/install.html" but when running "./configure", I get an error I
> don't understand:
> 
>     ./configure: line 5574: syntax error near unexpected token
>     `SASL_DB_LIB=""'
>     ./configure: line 5574: `SASL_DB_LIB=""'
> 
> I tried running "SASL_DB_LIB=`pwd`/sasldb ./configure" but that doesn't
> change anything.
> 
> If you know a way to make this work, I would be grateful for your help
> :-)
> 
> Best regards,
>  
> Conrad Kleinespel
> conradk at conradk.com
> +33 6 23 82 42 79
> 
> On Sun, May 17, 2015, at 05:11 PM, Conrad Kleinespel wrote:
> > I forgot to mention something in the steps to reproduce. Right after
> > cloning, I built Cyrus like so:
> > 
> >     autoreconf -s -i
> >     ./configure CFLAGS="-Wno-unused-parameter -g -O0 -Wall -Wextra
> >     -Werror" --enable-coverage --enable-http --enable-unit-tests
> >     --enable-replication --with-openssl=yes --enable-nntp
> >     --enable-murder --enable-idled --prefix=`pwd` --enable-sieve && make
> >     && make install
> >     make lex-fix
> >     make
> >     make install
> > 
> > Note that the "prefix" is set to the directory of the "master" branch.
> > 
> > Thanks again for any help you can provide,
> > 
> > Best regards,
> > 
> > -- 
> > Conrad Kleinespel
> > conradk at conradk.com
> > +33 6 23 82 42 79
> > 
> > On Sun, May 17, 2015, at 05:00 PM, Conrad Kleinespel wrote:
> > > Hello everyone,
> > > 
> > > I'm setting up a Cyrus / Sendmail server. I wanted to create a mailbox,
> > > so I tried doing this with the "cyradm" tool. Unfortunately, I'm
> > > struggling with Perl errors, specifically:
> > > 
> > >     Can't locate loadable object for module Cyrus::IMAP in @INC (@INC
> > >     contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.20.2
> > >     /usr/local/share/perl/5.20.2 /usr/lib/x86_64-linux-gnu/perl5/5.20
> > >     /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.20
> > >     /usr/share/perl/5.20 /usr/local/lib/site_perl .)
> > > 
> > > Steps to reproduce on my machine are:
> > > 
> > > - clone the cyrus-imapd "master" branch
> > > - change directory to "perl/imap/blib/lib/"
> > > - run this command: perl -e"use Cyrus::IMAP;"
> > > 
> > > I'm thinking this may be a missing library on my machine. But I have not
> > > yet found a way to know which one. The packages "Carp" and "IO::File"
> > > are both available. Cyrus builds fine and is running. I'm on Ubuntu
> > > Linux 15.04.
> > > 
> > > Would you know a way to get this to work ?
> > > 
> > > I appreciate you taking the time to read this and am grateful for any
> > > help / tips / hints :-)
> > > 
> > > -- 
> > > Conrad Kleinespel
> > > conradk at conradk.com
> > > +33 6 23 82 42 79


More information about the Cyrus-devel mailing list