nagiosインストールメモ
お試し用にnagiosのインストールをやったのでメモ。
基本的にはドキュメントどおりでOK.
ただ何故かmake allで詰まった。
nagios-3.0.6.tar.gzを落としてきて、解凍してconfigureしてmake allするところでエラーが発生。
status.c: In function `main': status.c:249: parse error before `int' status.c:251: `i' undeclared (first use in this function) status.c:251: (Each undeclared identifier is reported only once status.c:251: for each function it appears in.) status.c:251: `len' undeclared (first use in this function) status.c:251: `regex_i' undeclared (first use in this function) make[1]: *** [status.cgi] エラー 1 make[1]: 出ます ディレクトリ `/downloads/nagios-3.0.6/cgi' make: *** [all] エラー 2
status.cの該当部分をを見てみると、別に普通に見える。
/* allocate for 3 extra chars, ^, $ and \0 */ host_filter = malloc(sizeof(char) * (strlen(host_name) * 2 + 3)); int regex_i=1,i=0; <--ここが249行目 int len=strlen(host_name); for (i=0;i<len;i++,regex_i++) { if(host_name[i]=='*') { host_filter[regex_i++]='.'; host_filter[regex_i]='*'; } else host_filter[regex_i]=host_name[i]; } host_filter[0]='^'; host_filter[regex_i++]='$'; host_filter[regex_i]='\0'; }
はっきりいってぜんぜんわからないので、途方にくれたんだけど、あてずっぽうでエラーになった行をちょっと前に持っていったら通った。
なんなんでしょう。
int regex_i=1; int i=0; int len=strlen(host_name); /* allocate for 3 extra chars, ^, $ and \0 */ host_filter = malloc(sizeof(char) * (strlen(host_name) * 2 + 3));
------------------ 環境 ------------------ OS:Red Hat Enterprise Linux WS release 2.1 (Tampa) Kernel:2.4.9-e.62smp # rpm -q glibc glibc-2.2.4-32.25 # rpm -q glibc-devel glibc-devel-2.2.4-32.25 # rpm -q gd gd-1.8.4-4.21.1 # rpm -q gd-devel gd-devel-1.8.4-4.21.1 # rpm -q gcc gcc-2.96-129.7.2