[netatalk-ja:0450] Re: netatalk documentation の日本語訳について

HAT hat @ fa2.so-net.ne.jp
2015年 5月 6日 (水) 16:57:12 JST


HATです。

Berkeley DBはバージョンによって仕様が異なり、互換性が低いという
面倒な問題があります。
そこで、大抵のOSでは複数のバージョンのBerkeley DBをインストールできる
ように、パッケージ名にバージョン番号を含めています。

> euda です.
> Berkeley DB のライブラリーのパッケージについては,
> 
> 蛇足で釈迦説かもしれませんが,
> =====
> 既に,
> $ dpkg -l | grep Berkeley
> libdb5.3:amd64 5.3.28-3ubuntu3 Berkeley v5.3 Database Libraries
> [runtime]
> libdb5.3:i386 5.3.28-3ubuntu3 Berkeley v5.3 Database Libraries
> [runtime]
> みたいな感じなので,5.3 は小生の環境では入っています.
> (削除しようとすると passwd → adduser みたいな依存関係なのでカナリ依
> 存し てる)

Ubuntu 14.04の場合は5.1, 5.3, 6.0が用意されているようです。
特定のバージョンを必要とするソフトウエアもあるので、そのような場合は
libdb5.1-dev
のようにバージョン番号付きでパッケージを取得します。
libdb-devのように、バージョン番号抜きでパッケージを取得すれば、
推奨のバージョンがインストールされます。
Ubuntu 14.04の場合は5.3が選ばれます。
既に調査されたとおり、このバージョンが依存関係が高いですね。

> で,
> netatalk の ./configure の止まる直前に,
> 
> checking for Berkeley DB headers in /usr/local/include/... no
> checking for Berkeley DB headers in /usr/local/include/db5... no
> checking for Berkeley DB headers in /usr/local/include/db5.1... no
> checking for Berkeley DB headers in /usr/local/include/db51... no
> checking for Berkeley DB headers in /usr/local/include/db5.0... no
> checking for Berkeley DB headers in /usr/local/include/db50... no
> checking for Berkeley DB headers in /usr/local/include/db4.8... no
> checking for Berkeley DB headers in /usr/local/include/db48... no
> checking for Berkeley DB headers in /usr/local/include/db4.7... no
> checking for Berkeley DB headers in /usr/local/include/db47... no
> checking for Berkeley DB headers in /usr/local/include/db4.6... no
> checking for Berkeley DB headers in /usr/local/include/db46... no
> checking for Berkeley DB headers in /usr/local/include/db4... no
> checking for Berkeley DB headers in /usr/include/... no
> checking for Berkeley DB headers in /usr/include/db5... no
> checking for Berkeley DB headers in /usr/include/db5.1... no
> checking for Berkeley DB headers in /usr/include/db51... no
> checking for Berkeley DB headers in /usr/include/db5.0... no
> checking for Berkeley DB headers in /usr/include/db50... no
> checking for Berkeley DB headers in /usr/include/db4.8... no
> checking for Berkeley DB headers in /usr/include/db48... no
> checking for Berkeley DB headers in /usr/include/db4.7... no
> checking for Berkeley DB headers in /usr/include/db47... no
> checking for Berkeley DB headers in /usr/include/db4.6... no
> checking for Berkeley DB headers in /usr/include/db46... no
> checking for Berkeley DB headers in /usr/include/db4... no
> configure: error: Berkeley DB library required but not found!
> 
> と,出力して停止するので Berkeley DB lib の 4.6 から 5.1 までのライブ
> ラ リが必要なのでしょう.

現在のNetatalkはBerkeley DB 4.6以上が必須です。
複数のはBerkeley DBがインストールされる関係で、ディレクトリ名に
バージョン番号が付いているケースがあるので、configureスクリプトは
色々なディレクトリ名で検索します。
それが上の結果です。

> で,小生のレポジトリに普通にあるものから上記に合いそうなものを検索する
>> libdb5.1 - Berkeley v5.1 Database Libraries [runtime]
> が出てくるのですが,これをインストールしても結果は上と同じです,
> で,ぐぐって出てきたのが libdv5.1-dev を使うという方法です.試してみた
> ら 通った.というだけの
> ことなので,他にも HAT さんの書いているパッケージの他にももっと具合の
> い いパッケージがあるのかもしれません.
> あるいはHAT さんが厳密に検証した末の話だったらすいません.
> ともかく要求してくる Berkeley DB ライブラリーのバージョンは結構微妙な
> の です.

まずは推奨バージョンを試すべきなので、バージョン番号抜きの
libdb-dev
をインストールしてください。
これでダメならバージョン番号付きを試す必要があります。

> で,実際に使ってる netatalk3 は freebsd 上で使ってるのですが,
> Berkeley DB のバージョンは
> $ pkg info | grep Berkeley
> db5-5.3.28_2                   The Oracle Berkeley DB, revision 5.3
> なのですが,/usr/local/include/db5 というディレクトリはあるので
> configure が通る模様です.

BSD系も複数のバージョンが選べる筈ですよね?
どのバージョンが推奨なのか知りませんが。

-- 
HAT


netatalk-ja メーリングリストの案内