Cyrus SASL (Simple Authentication and Security Layer)

[ 戻る | トップページに戻る ]

概要

SASL とは、SMTP AUTH 等に用いられる認証ライブラリ。

URL

http://asg.web.cmu.edu/sasl/

インストール環境

Plamo Linux 2.2.1 (Kernel 2.2.19 + glibc 2.2)

必要なもの

特になし

バージョン

1.5.24, 2.1.13

インストール手順 (for 1.5.24)

$ tar xvfz cyrus-sasl-1.5.24.tar.gz
$ cd cyrus-sasl-1.5.24
$ ./configure --enable-java
$ make
(snip)
*** Warning: This library needs some functionality provided by -lsasl.
*** I have the capability to make that library automatically link in when
*** you link to this library.  But I can only do this if you have a
*** shared version of the library, which you do not appear to have.
*** The inter-library dependencies that have been dropped here will be
*** automatically added whenever a program is linked with this library
*** or is declared to -dlopen it.
(snip)

とりあえず...問題ないのかな。インストールしておしまい。
$ su
# make install
(snip)
********************************************************
* WARNING:
* Plugins are being installed into /usr/local/lib/sasl,
* but the library will look for them in /usr/lib/sasl.
* You need to make sure that the plugins will eventually
* be in /usr/lib/sasl -- the easiest way is to make a
* symbolic link from /usr/lib/sasl to /usr/local/lib/sasl,
* but this may not be appropriate for your site, so this
* installation procedure won't do it for you.
*
* If you don't want to do this for some reason, you can
* set the location where the library will look for plugins
* by setting the environment variable SASL_PATH to the path
* the library should use.
********************************************************
(snip)
# exit

インストール手順 (for 2.1.13)

$ tar xvfz cyrus-sasl-2.1.13.tar.gz
$ cd cyrus-sasl-2.1.13
$ ./configure --enable-java --with-openssl=/usr/local/ssl
$ make
(snip)
gcc -shared  javasasl.lo  -L/usr/local/lib -L../../lib -lsasl2 -lresolv -lresolv -lc \
    -Wl,-soname -Wl,libjavasasl.so.1 -o .libs/libjavasasl.so.1.0.0
/usr/i386-pc-linux/bin/ld: cannot find -lsasl2
collect2: ld returned 1 exit status
make[3]: *** [libjavasasl.la] エラー 1
make[3]: 出ます ディレクトリ `/usr/local/src/cyrus-sasl-2.1.13/java/CyrusSasl'
make[2]: *** [all-recursive] エラー 1
make[2]: 出ます ディレクトリ `/usr/local/src/cyrus-sasl-2.1.13/java'
make[1]: *** [all-recursive] エラー 1
make[1]: 出ます ディレクトリ `/usr/local/src/cyrus-sasl-2.1.13'
make: *** [all-recursive-am] エラー 2

# --enable-java を外せば平和なのだが...。
むう。libsasl2 ってどこにあるのだ? ./lib/.libs にあるようだが...。
以下のページを参考にこうしてみる。
$ env CPPFLAGS="-I./lib//include" LDFLAGS="-L./lib/.libs -R./lib/.libs" --enable-java --with-openssl=/usr/local/ssl
$ make
(snip)
/bin/sh ../libtool --mode=link gcc  -Wall -W -Wall -g -O2 -L/usr/local/lib -Wl,-rpath,/usr/local/lib \
        -L./lib/.libs -L/usr/local/ssl/lib -o makemd5  makemd5.o  -lresolv -lresolv 
../libtool: cd: ./lib/.libs: そのようなファイルやディレクトリはありません
libtool: link: warning: cannot determine absolute directory name of `./lib/.libs'
libtool: link: passing it literally to the linker, although it might fail
libtool: link: only absolute run-paths are allowed
make[2]: *** [makemd5] エラー 1
make[2]: 出ます ディレクトリ `/usr/local/src/cyrus-sasl-2.1.13/include'
make[1]: *** [all-recursive] エラー 1
make[1]: 出ます ディレクトリ `/usr/local/src/cyrus-sasl-2.1.13'
make: *** [all-recursive-am] エラー 2

ふむ。./lib/.libs という指定はダメなのね。という訳で絶対パス指定。
$ env CPPFLAGS="-I/usr/local/src/cyrus-sasl-2.1.13/lib" \
      LDFLAGS="-L/usr/local/src/cyrus-sasl-2.1.13/lib/.libs" \
      ./configure --enable-java --with-openssl=/usr/local/ssl
$ make
$ su
# make install
(snip)
make[2]: 入ります ディレクトリ `/usr/local/src/cyrus-sasl-2.1.13/java/CyrusSasl'
CLASSPATH=..:./..:$CLASSPATH javah -o javasasl.h -jni CyrusSasl.Sasl CyrusSasl.GenericClient \
          CyrusSasl.ClientFactory CyrusSasl.GenericCommon CyrusSasl.SaslClient CyrusSasl.SaslClientFactory \
          CyrusSasl.SaslException CyrusSasl.SaslInputStream CyrusSasl.SaslOutputStream CyrusSasl.SaslUtils \
          CyrusSasl.ServerFactory CyrusSasl.SaslServerFactory CyrusSasl.SaslServer CyrusSasl.GenericServer
/bin/sh: javah: command not found
make[2]: *** [javasasl.h] エラー 127
make[2]: 出ます ディレクトリ `/usr/local/src/cyrus-sasl-2.1.13/java/CyrusSasl'
make[1]: *** [install-recursive] エラー 1
make[1]: 出ます ディレクトリ `/usr/local/src/cyrus-sasl-2.1.13/java'
make: *** [install-recursive] エラー 1

むう。root で javah へのパスが通っていなかった。適宜パスを通せば OK 。 あとは、リンクを張っておしまい。
# make install
# ln -s /usr/local/lib/sasl2 /usr/lib/sasl2
# exit

[ 戻る | トップページに戻る ]