[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:48192] Re: saslpasswd 実行のエラー on SASL(cyrus)



飛田です。

>>>>> In [debian-users : No.48176] 
>>>>>	渡瀬正憲 <watase@xxxxxxxxx> wrote:

> ずいぶん古い投稿に対するレスでまことに恐縮ですが、
> ------------------------------------------------------------
> [debian-users:39933] saslpasswd 実行のエラー on SASL(cyrus)
> Wed, 17 Mar 2004 17:12:14 +0900 
> >
> > 下記環境でopenLDAPをインストール後、
> > SASLを入れてopenLDAPの設定をしているのですが、
> > sasldbに認証用にユーザ登録をする為に
> > /usr/local/sbin/saslpasswd -u a.b.c.com komi で
> > パスワードを聞いてくるので2回入れるのですが、
> > 最後に”セグメンテーション違反”とエラーが出ます。
> > これは、どういう意味なのでしょうか?
> > インターネットで探しても該当の個所が見つけきれませんでした。
> > 又、docをみたのですが、SASLの説明に終始しておりますし、
> > 同じようなキーワードで探しましたが、やり方が悪いのか、
> > 検索不能です。
> ------------------------------------------------------------

> スレッドを見ても反応はとくになさそうでしたし、状況は違うものの
> 私も同じ問題にぶつかって解決できたので、ご参考までにその結果を
> 投稿しました。

> 私の場合は、RedHat-Linux上にCyrus-IMAPDを載せたケースでして、
> ソフト(バージョン)は以下のとおりです。※かなり古いですが。。。

そうですね、http://cyrusimap.web.cmu.edu/downloads.html#sasl にも書かれ
ていますが、特別な理由があるのでなければそろそろ v2 系列に乗り換えられ
るのがよいでしょう。

;; 1.5系はdebian のパッケージからも消えた -既に他のどのパッケージからも
;; 利用されてない- のではなかったかなと思います。

> ※OSはRedHat-Linux(release9)
> ・Berkeley-DB (3.3.11)
> ・Cyrus-SASL  (1.5.28)
> ・Cyrus-IMAPD (2.0.17)

> この順番でメイク(configure+make+make install)実行後、同様に
> /usr/local/sbin/saslpasswdで認証用DB(/etc/sasldb)にID/PWDを設定
> しようとして、同じくセグメンテーション違反に陥りました。

> 原因は、Cyrus-SASLのconfigure実行時に、BerkeleyDBライブラリへの
> パス参照が足りず、libsasl.so が正しく出来ていなかった事でした。

[...]

> Cyrus-SASLのconfigureでは、BerkeleyDBが導入済かどうかを検査
> する目的で、BerkeleyDBライブラリ(libdb*.so)のdb_create()関数を
> 呼び出すだけの単純なCソースをgccでコンパイル/リンクします。
> 当然、BerkeleyDBのライブラリへのパス参照が正しくconfigureに
> 渡されていないと、これが失敗することになりますが、上記★は
> まさにこの失敗に相当するものでした。

> BerkeleyDBはデフォルトのインストール先に導入していまして、
> ライブラリは以下に格納されていました。
> ------------------------------------------------------------
> # ls -l /usr/local/BerkeleyDB.3.3/lib/
> lrwxrwxrwx  1  root root      12  libdb-3.so -> libdb-3.3.so
> lrwxrwxrwx  1  root root      12  libdb.so -> libdb-3.3.so
> -rw-r--r--  1  root root  720390  libdb-3.3.a
> -r--r--r--  1  root root     717  libdb-3.3.la
> -r--r--r--  1  root root  567072  libdb-3.3.so
> ------------------------------------------------------------

> configure実行時にそれなりに指定したつもりでしたが、より正確に
> (冗長に)指定したところ、ワーニングが解消されました。
> ※以下の「△」は「/usr/local/BerkeleyDB.3.3」のことです。
> ------------------------------------------------------------
> # cd /home/xxx/cyrus-sasl-1.5.28/
> # LDFLAGS="-L/△/lib" \
>   CFLAGS="-I/△/include" ./configure ...
> ↓(変更)↓
> # LDFLAGS="-L/△/lib -Wl,-rpath,/△/lib -ldb -lpthread" \
>   CFLAGS="-I/△/include" \
>   ./configure --with-dblib=berkeley --enable-plain ...

[...]

> #本来であれば、LD_LIBRARY_PATH、LIBDIR、INCDIRの環境変数に
> #これらのパスを設定するなり、/etc/ld.so.conf にライブラリパスを
> #記述しておくなど、事前にしておくところでしょうが。。

1.5 系ではなく 2 系ですが、./configure --help で出てくるオプションに
は、--with-bdb-libdir=DIR --with-bdb-incdir=DIR というのが指定可能です
ので、まずはそれを設定してみるのが良いのではないかと思います。

;; 昔、bdb を --enable-versioning (だったけか?) で作ってしまい、シンボ
;; ルが変ってうまく見付けられなかった、という失敗をした事があります。

;; まぁ、特に理由がなければ deb パッケージを使うのが手っ取り早いと思い
;; ますが。

-- 
  Shinichiro HIDA  shinichiro@xxxxxxxxxxxxx
  GPG fingerprint = 5F2D 1656 FFF6 F691 A51C  5E61 E416 D398 470C 1CE9