[关闭]
@NumberFairy 2018-07-25T00:46:15.000000Z 字数 1526 阅读 2118

Bro安装过程(纪念其中踩过的坑)

Linux


分享一个这两周遇到的问题,通过源码安装bro的时候,在./configure阶段总是遇到这个问题:
CMake Error at cmake/RequireCXX11.cmake:40 (message):
GCC version must be at least 4.8 for C++11 support, detected: 4.4.7
Call Stack (most recent call first):
CMakeLists.txt:221 (include)

上面的提示很清楚,说我都GCC版本是4.4.7,但是当前bro在./configure的时候需要至少4.8以上。OK,我只需把我的GCC升级或者再安装一个高版本即可嘛。注意:下面的操作是教大家如何再安装一个高版本的GCC,而不是直接将Linux自带的4.4.7进行升级,我相信网上有不少标题为"GCC4.4.7升级到4.8+"等等这些文章都是在机子上又安装了一个高版本的GCC罢了,而非直接升级。

第一步:安装高版本GCC

该步骤操作网上很多教程,我这里简要写一下,其实从源码安装一般也是这几个步骤:
源码下载:点击这里找到你需要下载的版本,比如下载完后文件名叫:gcc-5.5.tar.gz

解压: tar -xzvf gcc-5.5.tar.gz
cd gcc-5.5
./contrib/download_prerequisites 这个神奇的脚本文件会帮我们下载、配置、安装依赖库,可以节约我们大量的时间和精力
sudo mkdir build
cd build
../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib。--enable-languages表示你要让你的gcc支持那些语言,--disable-multilib不生成编译为其他平台可执行代码的交叉编译器。--disable-checking生成的编译器在编译过程中不做额外检查,也可以使用--enable-checking=xxx来增加一些检查。
sudo make 请耐心等待,2个小时左右
make install
最后,查看gcc版本:gcc -v(如果看到的还是旧版本,请重启linux)。
最终,可以利用命令:whereis gcc来查看gcc的安装位置,我的如下:
[root@zzu bro]# whereis gcc
gcc: /usr/bin/gcc /usr/lib/gcc /usr/local/bin/gcc /usr/local/lib/gcc /usr/libexec/gcc         /usr/share/man/man1/gcc.1.gz
其中/usr/bin/gcc这个是linux系统自带的gcc安装位置,版本是4.4.7;/usr/local/bin/gcc这个是我们新安装的gcc位置,版本是5.5.0.(这个就是你安装的gcc版本)

第二步骤,安装bro

依旧是用源码进行安装:请参考官网文档,bro安装文档

git clone --recursive git://git.bro.org/bro
cd bro
CC=/usr/local/bin/gcc ./configure (这里我在前面加入了编译时的gcc路径,即指定我用5.5.0的gcc进行编译,否则你在./configure的时候会会出现文章最初的状况)
sudo make
sudo make install
安装完成之后还要添加环境变量(否则后面你可能装不了broctl):export PATH=/usr/local/bro/bin:$PATH

到此为止,bro的安装基本已经完成,后续的配置运行时环境请参考官方文档

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注