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