僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
LFSにインストールしようとあれこれ。libpcap-1.2.0rc1 は問題なしだった。
$ make gcc -O2 -DHAVE_CONFIG_H -I./missing -D_U_="__attribute__((unused))" \ -I. -I/usr/include -I/usr/include -I./missing -DINET6 -g -O2 \ -c ./print-ppi.c ./print-ppi.c:16:17: fatal error: ppi.h: No such file or directory compilation terminated. make: *** [print-ppi.o] Error 1
./print-ppi.c の当該部分は、
15 #include "extract.h" 16 #include "ppi.h" 17 18 #ifdef DLT_PPI
"ppi.h" なんてソースツリーには見当たらない。tcpdump-4.1.1 は特に考えることもなくビルドできた。
適当にぐぐっていると、なんと
githubが。
そこからppi.hを貰うとできた。でも、流石にmake install
する気にはなれなかった。
を、LFSにも入れてみた。その前にSqueeze。
Debian Squeeze にあることを知らず、すぐには通らないビルドで
あーだこーだしていた。
適当に
あちら
こちらと、
ぐぐったりなんだりしてビルドが通るようになった頃、
既にパッケージがあることが分かった。
ソースパッケージをダウンロードして、diff と睨めっこ。
ビルドが通るだけなら、変更は3,4箇所ほど。
まず、"<net/bpf.h>"は要らないらしい。
エンディアンを区別する定義部分で、x86_64向けの設定がなかった。
そしてtclのライブラリをリンクするが、/usr/lib/libtcl8.4.so.0 を
見つけられなかった。末尾の".0"がひっかかるらしく、"libtcl8.4.so"
というシンボリックリンクを作るとうまくいった(LFSには不要)。
$ diff -r hping3-20051105 hping3-new diff -r hping3-20051105/bytesex.h hping3-new/bytesex.h 10a11 > || defined(__amd64__) \ diff -r hping3-20051105/libpcap_stuff.c hping3-new/libpcap_stuff.c 20d19 < #include <net/bpf.h> diff -r hping3-20051105/script.c hping3-new/script.c 27d26 < #include <net/bpf.h>
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。