lost and found ( for me ? )

how to build unbound 1.4.7 on Ubuntu 10.04 VM created by VMbuilder

もう1台のVM(VMbuilderで作成したubuntu 10.04)にunbound 1.4.7をソースからインストールしようとしたら、下記のエラーがでた。
make[1]: Entering directory `/usr/local/lib'
make[1]: *** No rule to make target `copy-headers'.  Stop.
make[1]: Leaving directory `/usr/local/lib'
make: *** [build/services/listen_dnsport.lo] Error 2


初心(?)にもどり、すっからかんのVM ( vmbuilder で作成した ubuntu 10.04 ) で確認してみよう。

下記でインストールできた。
1. apt-get install build-essential libssl-dev libexpat1-dev
2. unbound のソースにはいっている ldns をコンパイル
3. /etc/ld.conf.d/local.conf を作成、ldconfig コマンド実行
4. unbound のコンパイル
5. ユーザ unbound , グループ unbound の作成
6. unbound 1.4.7起動 : )

[ try n’ error log ]

まずはCコンパイラ環境をインストール
root@ubuntu-7:~# apt-get install build-essential

  58  tar xzvf unbound-latest.tar.gz
  59  cd unbound-1.4.7/

root@ubuntu-7:~/unbound-1.4.7# ./configure --disable-gost
checking for SSL... configure: error: Cannot find the SSL libraries in /usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /opt/local /usr/sfw /usr


SSLライブラリをインストール
root@ubuntu-7:~/unbound-1.4.7# apt-get install libssl-dev

root@ubuntu-7:~/unbound-1.4.7# ./configure --disable-gost
checking for libexpat... configure: error: Could not find libexpat, expat.h

root@ubuntu-7:~/unbound-1.4.7# apt-get install libexpat1-dev

root@ubuntu-7:~/unbound-1.4.7# ./configure --disable-gost
configure: error: No ldns library found (or not recent); install or update ldns library, use --with-ldns=path or --with-ldns-builtin


ldns は unbound にはいっているのをコンパイル。
  72  tar xzvf ldns-src.tar.gz
  73  cd ldns-1.6.7_20101101/
  76  ./configure --disable-gost
  77  make
  78  make install

root@ubuntu-7:~/unbound-1.4.7/ldns-1.6.7_20101101# ls /usr/local/lib/libldns.*
/usr/local/lib/libldns.a   /usr/local/lib/libldns.so.1
/usr/local/lib/libldns.la  /usr/local/lib/libldns.so.1.6.7
/usr/local/lib/libldns.so


共有ライブラリ更新
root@ubuntu-7:~# cat /etc/ld.so.conf.d/local.conf
/usr/local/lib
root@ubuntu-7:~# ldconfig
root@ubuntu-7:~# ldconfig -p | egrep ldns
       libldns.so.1 (libc6) => /usr/local/lib/libldns.so.1
       libldns.so (libc6) => /usr/local/lib/libldns.so


コンパイル出来た。
  90  cd unbound-1.4.7/
  93  ./configure --disable-gost
  94  make
  95  make install

root@ubuntu-7:~# /usr/local/sbin/unbound

root@ubuntu-7:~# unbound-control status
version: 1.4.7
verbosity: 1
threads: 1
modules: 2 [ validator iterator ]
uptime: 4 seconds
unbound (pid 21278) is running...


---- unbound 1.4.7 コンパイル時エラー対処 ---

make[1]: Entering directory `/usr/local/lib'
make[1]: *** No rule to make target `copy-headers'.  Stop.
make[1]: Leaving directory `/usr/local/lib'
make: *** [build/services/listen_dnsport.lo] Error 2


原因は apt でインストールした libldns と unboundのソースの libldns がまざってる(日本語正しい?)のが原因だったみたい。

NGケース ( aptで unbound , libldns をインストールしている )
root@ubuntu-4:~/unbound-1.4.7# ldconfig -p | grep ldns
       libldns.so.1 (libc6) => /usr/local/lib/libldns.so.1
       libldns.so.1 (libc6) => /usr/lib/libldns.so.1
       libldns.so (libc6) => /usr/local/lib/libldns.so
       libldns.so (libc6) => /usr/lib/libldns.so


OKケース ( apt でunbound , libldns はインストールしていない )
root@ubuntu-7:~# ldconfig -p | egrep ldns
       libldns.so.1 (libc6) => /usr/local/lib/libldns.so.1
       libldns.so (libc6) => /usr/local/lib/libldns.so


apt-get でインストールした unbound , libldns を削除。
root@ubuntu-4:~# apt-get remove libldns-dev libldns1 unbound


unbound に同梱されている ldns のコンパイル、unbound のコンパイルを実施。
2033  tar xzvf unbound-latest.tar.gz
2034  cd unbound-1.4.7/
2035  ls
2036  tar xzvf ldns-src.tar.gz
2037  cd ldns-1.6.7_20101101/
2038  ./configure --disable-gost
2039  make
2040  make install


共有ライブラリ更新
root@ubuntu-4:~# cat /etc/ld.so.conf.d/local.conf
/usr/local/lib
root@ubuntu-4:~# ldconfig
root@ubuntu-4:~# ldconfig -p | egrep ldns
       libldns.so.1 (libc6) => /usr/local/lib/libldns.so.1
       libldns.so (libc6) => /usr/local/lib/libldns.so


apt でインストールして使用していたときの unbound.conf を流用するため、--with-conf-file でパス指定。
root@ubuntu-4:~# cd unbound-1.4.7/
root@ubuntu-4:~/unbound-1.4.7# ./configure --disable-gost --with-conf-file=/etc/unbound/unbound.conf
root@ubuntu-4:~/unbound-1.4.7# make
root@ubuntu-4:~/unbound-1.4.7# make install
root@ubuntu-4:~/unbound-1.4.7# groupadd unbound
root@ubuntu-4:~/unbound-1.4.7# useradd -g unbound -s /bin/false unbound

root@ubuntu-4:~# /usr/local/sbin/unbound
[1291702159] unbound[24707:0] debug: creating udp4 socket 0.0.0.0 53
[1291702159] unbound[24707:0] debug: creating tcp4 socket 0.0.0.0 53
[1291702159] unbound[24707:0] debug: creating tcp4 socket 127.0.0.1 953
[1291702159] unbound[24707:0] debug: setup SSL certificates
root@ubuntu-4:~# unbound-control status
version: 1.4.7
verbosity: 10
threads: 1
modules: 2 [ validator iterator ]
uptime: 5 seconds
unbound (pid 24708) is running...
root@ubuntu-4:~#

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.