"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