前几日在VPS上面重新安装了下GoAccess,以前博主为图省事直接用的apt-get install goaccess进行的安装,没有对源代码进行编译安装,在Ubuntu下编译的时候不能通过报出了两个错误,博主于是发邮件给GoAccess官方需求解决方法,很快得到的回复。对了GoAccess官方邮件地址是goaccess(at)prosoftcorp.com,有问题可以直接给他们发邮件,很快就会得到答复!
我安装的时候产生的错误是这样的
gcc -g -Wall -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -lmenuw -lncursesw -lm -o goaccess settings.o error.o commons.o goaccess.o parser.o ui.o util.o -lglib-2.0 -lmenuw -lncursesw ui.o: In function `create_graphs': /usr/local/goaccess/ui.c:300: undefined reference to `log10' /usr/local/goaccess/ui.c:300: undefined reference to `floor' ui.o: In function `data_by_total_hits': /usr/local/goaccess/ui.c:390: undefined reference to `log10' /usr/local/goaccess/ui.c:390: undefined reference to `floor' collect2: ld returned 1 exit status make[1]: *** [goaccess] Error 1 make[1]: Leaving directory `/usr/local/goaccess' make: *** [all] Error 2
官方的给出的解决办法是
首先安装autoconf,如果没有安装的话
apt-get install autoconf
打开Makefile.am文件查看是否有如下两行的内容,没有则进行添加
AM_CFLAGS = -g -Wall @GLIB2_CFLAGS@ goaccess_LDADD = -lm
修改configure.ac文件
vi configure.ac
注释掉AM_INIT_AUTOMAKE,然后执行以下命令
autoheader autoconf
再次修改configure.ac文件
vi configure.ac
将AM_INIT_AUTOMAKE注释去掉,然后执行以下命令
aclocal automake -a autoconf
再次进行编译顺利通过,GoAccess官方建议用git获取源代码
git clone git://goaccess.git.sourceforge.net/gitroot/goaccess/goaccess
我也是通过这种方式获取的源代码进行修改之后编译安装顺利通过