logo
code:Haemophilus influenzae

ここに書かれていることは無保証です。同じことを行って問題が発生しても、 龍義は責任をとりません。

2007年9月24日

戻る

ntop のコンパイル。

ntop のコンパイル。RedHat ES3 の駄目環境でのおハナシ。

とりあえず、ソースをこの辺から持ってきて、展開。

[toyota@kashyyyk] tar xvfz ntop-3.3.tar.gz
[toyota@kashyyyk] cd ntop-3.3
[toyota@kashyyyk] ./configure
〜略〜
checking for main in -lrrd_th... no
configure: error: Unable to find RRD at /usr/local/rrdtool: please use --with-rrd-home=DIR

だそうで、rrdtool を入れなきゃいけないようである。この辺から、ダウンロード
してきた。

[toyota@kashyyyk] tar xvfz rrdtool-1.2.20.tar.gz
[toyota@kashyyyk] cd rrdtool-1.2.20
[toyota@kashyyyk] ./configure
〜略〜
Findr 3rd-Party Libraries
checking for art_vpath_add_point in -lart_lgpl_2... no
checking for pkg-config... pkg-config
configure: WARNING:
----------------------------------------------------------------------------
* I found a copy of pkgconfig, but there is no libart-2.0.pc file around.
  You may want to set the PKG_CONFIG_PATH variable to point to its
  location.
----------------------------------------------------------------------------
                        
configure: WARNING:
----------------------------------------------------------------------------
* I could not find a working copy of libart-2.0. Check config.log for hints on why
  this is the case. Maybe you need to set LDFLAGS and CPPFLAGS appropriately
  so that compiler and the linker can find libart_lgpl_2 and its header files. If
  you have not installed libart-2.0, you can get it either from its original home on

     ftp://ftp.gnome.org/pub/GNOME/sources/libart_lgpl/2.3/

  You can find also find an archive copy on

     http://oss.oetiker.ch/rrdtool/pub/libs

  The last tested version of libart-2.0 is 2.3.17.

       LIBS=-lm 
   LDFLAGS=
  CPPFLAGS= -I/usr/include/libart-2.0

----------------------------------------------------------------------------
                
checking for zlibVersion in -lz... yes
checking zlib.h usability... yes
checking zlib.h presence... yes
checking for zlib.h... yes
checking for png_access_version_number in -lpng... no
checking for pkg-config... (cached) pkg-config
configure: WARNING:
----------------------------------------------------------------------------
* I found a copy of pkgconfig, but there is no libpng.pc file around.
  You may want to set the PKG_CONFIG_PATH variable to point to its
  location.
----------------------------------------------------------------------------
                        
configure: WARNING:
----------------------------------------------------------------------------
* I could not find a working copy of freetype2. Check config.log for hints on why
  this is the case. Maybe you need to set LDFLAGS and CPPFLAGS appropriately
  so that compiler and the linker can find libfreetype and its header files. If
  you have not installed freetype2, you can get it either from its original home on

     http://prdownloads.sourceforge.net/freetype/

  You can find also find an archive copy on

     http://oss.oetiker.ch/rrdtool/pub/libs

  The last tested version of freetype2 is 2.1.10.

       LIBS=-lz -lm 
   LDFLAGS=
  CPPFLAGS= -I/usr/include/freetype2

----------------------------------------------------------------------------
                
configure: error: Please fix the library issues listed above and try again.

という具合。はまりそう。足りないのは、3つ。
libpng
libart
freetype2
の3つ。まず、freetype2 からはじめる。

[toyota@kashyyyk] wget http://download.savannah.gnu.org/releases/freetype/freetype-2.3.5.tar.gz
[toyota@kashyyyk] tar xvfz freetype-2.3.5.tar.gz
[toyota@kashyyyk] cd freetype-2.3.5
[toyota@kashyyyk] ./configure
[toyota@kashyyyk] make
[toyota@kashyyyk] su
[root@kashyyyk] make install

問題なく、インストール完了。rrdtool に戻って、configure をやってみる。

[toyota@kashyyyk] ./configure

結果は、最初と同じで3つの問題が出る。つまり、freetype2 のエラーが消えて
いない。
freetype-config は /usr/local/bin
freetype2.pc は /usr/local/lib/pkgconfig
にあるので、PKG_CONFIG_PATH の環境変数を変えてみる。

[toyota@kashyyyk] export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/local/lib/pkgconfig

これで、configure を実行してみると、freetype 周りのエラーは出なくなった。
残り2つ。次は libpng をインストールする。libpng のページから、1.2.20 を
ダウンロードして、作業開始。

[toyota@kashyyyk] tar xvfz libpng-1.2.20.tar.gz
[toyota@kashyyyk] cd libpng-1.2.20
[toyota@kashyyyk] ./configure
[toyota@kashyyyk] make
[toyota@kashyyyk] su
[root@kashyyyk] make install

問題なく完了。次は、libart を。

[toyota@kashyyyk] wget http://www.artofcode.com/libart/libart-2.3.3.tar.gz
[toyota@kashyyyk] tar xvfz libart-2.3.3.tar.gz
[toyota@kashyyyk] cd libart_lgpl-2.3.3/
[toyota@kashyyyk] ./configure
[toyota@kashyyyk] make
[toyota@kashyyyk] su
[root@kashyyyk] make install

問題なく、完了。rrdtool に戻って、configure を実行する。

[toyota@kashyyyk] ./configure
〜略〜
Findr 3rd-Party Libraries
checking for art_vpath_add_point in -lart_lgpl_2... no
checking for pkg-config... pkg-config
configure: WARNING:
----------------------------------------------------------------------------
* I found a copy of pkgconfig, but there is no libart-2.0.pc file around.
  You may want to set the PKG_CONFIG_PATH variable to point to its
  location.
----------------------------------------------------------------------------
                        
configure: WARNING:
----------------------------------------------------------------------------
* I could not find a working copy of libart-2.0. Check config.log for hints on why
  this is the case. Maybe you need to set LDFLAGS and CPPFLAGS appropriately
  so that compiler and the linker can find libart_lgpl_2 and its header files. If
  you have not installed libart-2.0, you can get it either from its original home on

     ftp://ftp.gnome.org/pub/GNOME/sources/libart_lgpl/2.3/

  You can find also find an archive copy on

     http://oss.oetiker.ch/rrdtool/pub/libs

  The last tested version of libart-2.0 is 2.3.17.

       LIBS=-lm 
   LDFLAGS=
  CPPFLAGS= -I/usr/include/libart-2.0

----------------------------------------------------------------------------
〜略〜

同じエラーが出る。どうやら、libart-2.0.pc が作成されていないようである。
libpng や freetype は、/usr/local/lib/pkgconfig にそれぞれの pc ファイルが
作成されたのだけど、libart は作成されない。/usr/local/bin には libart-config
があるんだけど。libart のページに 2.1.0 の古いバージョンも置いてあったので、
試してみたけど、やはり libart-2.0.pc が作成されない。仕方ない、手動で作る。

[toyota@kashyyyk] /usr/local/bin/libart-config --version --libs --cflags
2.3.3
-L/usr/local/lib -lart_lgpl -lm
-I/usr/local/include

これを参考に。

[toyota@kashyyyk] cat libart-2.0.pc
prefix=/usr/local
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include/libart_lgpl

Name: libart
Description: library of functions for 2D graphics
Version: 2.3.3
Libs: -L${libdir} -lart_lgpl -lm
Cflags: -I${includedir}

な感じで作って、/usr/local/lib/pkgconfig にコピーした。

[toyota@kashyyyk] cp libart-2.0.pc /usr/local/lib/pkgconfig/

これで、rrdtool の configure を実行する。

[toyota@kashyyyk] ./configure
〜略〜
Findr 3rd-Party Libraries
checking for art_vpath_add_point in -lart_lgpl_2... no
checking for pkg-config... pkg-config
--libs-only-other: unknown option
checking for art_vpath_add_point in -lart_lgpl_2... no
configure: WARNING:
----------------------------------------------------------------------------
* I could not find a working copy of libart-2.0. Check config.log for hints on why
  this is the case. Maybe you need to set LDFLAGS and CPPFLAGS appropriately
  so that compiler and the linker can find libart_lgpl_2 and its header files. If
  you have not installed libart-2.0, you can get it either from its original home on

     ftp://ftp.gnome.org/pub/GNOME/sources/libart_lgpl/2.3/

  You can find also find an archive copy on

     http://oss.oetiker.ch/rrdtool/pub/libs

  The last tested version of libart-2.0 is 2.3.17.

       LIBS=-lm  -lart_lgpl -lm  
   LDFLAGS= -L/usr/local/lib   
  CPPFLAGS= -I/usr/include/libart-2.0 -I/usr/local/include/libart_lgpl  

----------------------------------------------------------------------------
                
checking for zlibVersion in -lz... yes
checking zlib.h usability... yes
checking zlib.h presence... yes
checking for zlib.h... yes
checking for png_access_version_number in -lpng... yes
checking png.h usability... yes
checking png.h presence... yes
checking for png.h... yes
checking for FT_Init_FreeType in -lfreetype... yes
checking ft2build.h usability... no
checking ft2build.h presence... no
checking for ft2build.h... no
checking for pkg-config... (cached) pkg-config
--libs-only-other: unknown option
checking for FT_Init_FreeType in -lfreetype... yes
checking ft2build.h usability... yes
checking ft2build.h presence... yes
checking for ft2build.h... yes
configure: error: Please fix the library issues listed above and try again.

/usr/local/lib を見ると、libart_lgpl2.a じゃなくて libart_lgpl.a なので、
configure を編集する。

[toyota@kashyyyk] vi configure

これで、-lart_lgpl_2 となっているものを、全て -lart_lgpl に一括置換。再度、
configure の実行。

[toyota@kashyyyk] ./configure
〜略〜
tclrrd.c:20:17: tcl.h: No such file or directory
〜略〜

だそうで。確かに、ヘッダファイルが入っていないようなので、とりあえず、
逃げる。

[toyota@kashyyyk] ./configure --disable-tcl

なんか、これでやっと通った。

[toyota@kashyyyk] make
[toyota@kashyyyk] su
[root@kashyyyk] make install

目的は rrdtool じゃなくて、ntop というのを忘れるところだった。ということで、
ntop に戻る。

[toyota@kashyyyk] ./configure
checking for main in -lrrd_th... no
configure: error: Unable to find RRD at /usr/local/rrdtool: please use --with-rrd-home=DIR

rrdtool の場所を指定して、再度。

[toyota@kashyyyk] ./configure --with-rrd-home=/usr/local/rrdtool-1.2.20
[toyota@kashyyyk] make
〜略〜
/home/toyota/src/ntop/ntop-3.3/.libs/libntop: undefined reference to `pcap_datalink_val_to_description'
./.libs/libntopreport: undefined reference to `pcap_lib_version'
collect2: ld returned 1 exit status
make[2]: *** [ntop] Error 1
make[2]: Leaving directory `/home/toyota/src/ntop/ntop-3.3'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/toyota/src/ntop/ntop-3.3'
make: *** [all] Error 2

調べてみたら、pcap_datalink_val_to_description という関数は、0.8 より古い
pcap には、実装されていないみたい。それが問題で、起きているエラーのようで
ある。pcap のバージョンを確認してみる。

[toyota@kashyyyk] rpm -qa | grep pcap
libpcap-0.7.2-7.E3.5

駄目だ、腐ってやがる。これを置き換えることは、さすがにできないサーバなので
一時保留。溜息しか出ない。


by Tatsuyoshi
since 2003