本次安装主要是在Fusion Os上,等同于安装在centos 64位系统上。
zmap安装的时候,每个人遇到的情况可能都不一样,遇到各种各样的问题。本次安装时,主要参考的教程地址:https://blog.csdn.net/weixin_40691089/article/details/125203855
基础依赖
yum install cmake gmp-devel gengetoptlibpcap-devel flex byacc json-c-devel libunistring-devel
由于本次安装的难点主要在安装依赖环境,所以这些依赖可以先试试能安装上不,如果不行后面再说。
安装zmap
wget https://github.com/zmap/zmap/archive/v2.1.0.tar.gz
tar -xzvf v2.1.0.tar.gz
cmake -DENABLE_DEVELOPMENT=OFF
make
make install
验证zmap:
zmap -h
问题解决
以上是主要安装流程,看着很简单,但是中间问题不断,我弄了将近一天才安装成功。执行这些命令时,你要根据报错内容判断怎么解决问题,以下是我遇到的:
可能需要安装g++,我用yum install gcc-c++安装成功。
可能需要安装cmake,yum install cmake失败,可能是源不对,但这个源我不想折腾了,就下的安装包,自己安装的。
wget http://www.cmake.org/files/v3.1/cmake-3.1.1.tar.gz
tar zxvf cmake-3.1.1.tar.gz
cd cmake-3.1.1
./bootstrap
make
make install
如果本机已有cmake版本较低,可能会报一个版本不够高的错误提示,可以装个高版本就行。
zmap安装执行cmake -DENABLE_DEVELOPMENT=OFF时报错:“Did not find libjson”,这个是缺少依赖json-c-devel导致的,yum方式安装也失败了,这个是在git上下载zip源码包安装的,地址为:https://github.com/json-c/json-c,下载的安装包名叫:json-c-master.zip,实际上这个是json-c,而不是json-c-devel,但这个也是可以的,具体的安装流程如下:
unzip json-c-master.zip
cd json-c-master
cmake ./CMakeLists.txt
make
make install
当时装完,再执行cmake -DENABLE_DEVELOPMENT=OFF,依然报错,后来我就将json-c的库文件,往/usr/lib下加软连接,好像就好了。
ln -s /usr/lib64/libjson-c.so.5 /usr/lib/libjson-c.so
zmap安装执行make命令时,报找不到文件“hiredis/hiredis.h”的错误,这时需要安装依赖hiredis,这是我参考的教程里没有提到的。这个安装也挺麻烦,我先安装了redis:
wget http://download.redis.io/redis-stable.tar.gz
tar -xzvf redis-stable.tar.gz
cd redis-stable
make
make install
make test #此处为测试,验证安装是否ok
在redis-stable/deps/hiredis路径下,就是hiredis,在这里继续安装,就可以成功安装hiredis了。
cd deps/hiredis/
make
make install
mkdir /usr/lib/hiredis
mkdir /usr/include/hiredis
cp libhiredis.so /usr/lib/hiredis/
cp hiredis.h /usr/include/hiredis/
安装依赖gmp时,我记得必须安装为gmp-devel,不然不行。
安装依赖libpcap-devel
wget https://vault.centos.org/centos/8/PowerTools/x86_64/os/Packages/libpcap-devel-1.9.1-5.el8.x86_64.rpm
rpm -ivhlibpcap-devel-1.9.1-5.el8.x86_64.rpm --force –nodeps
安装依赖gengetopt
wget ftp://ftp.gnu.org/gnu/gengetopt/gengetopt-2.22.6.tar.gz
tar -zvxf gengetopt-2.22.6.tar.gz
cd gengetopt-2.22.6
./configure
make
make install
zmap安装执行make install命令时,报错内容里有“/conf/zmap.conf”或“blacklist.conf”,这个需要将zmap-2.1.0/conf/InstallConfFiles.cmake里的“${{RPJECT_SOURCE_DIR}”替换成当前的源码路径,这是因为路径不对,找不到这俩文件。
zmap运行时,依然报错,找不到“libhiredis.so.1.0.3-dev”,我就将这个库所在路径给加到一个系统配置文件里,就可以了。命令如下:
echo "/usr/local/lib" >>/etc/ld.so.conf
ldconfig
我猜测,这个libhiredis.so.1.0.3-dev不管是版本和所在路径可能与你的不同,请灵活处置。
完了,目前只能记到这么多了,请灵活参照。