贴主的机器,被不明真相的运维同学回收了几次,被编译clamav折磨几次以后留下一篇文档描述如何在新的机器上编译安装clamav
准备工作:一台通公网(更新病毒库使用)的centos系统的机器
第一步官网下载clamav源码,然后转移到目标机器上,这里使用的是当前最新的1.3.1版本
(你也可以选择直接下载安装包进行安装,我这里因为要适配低版本的机器,所以都是编译安装)
https://www.clamav.net/downloads
将源码导入目标机器
首先更新软件包
yum update
下载工具包
yum install -y gcc make pkg-config python3 python3-pip python3-pytest valgrind
下载依赖
yum install -y gcc make pkg-config python3 python3-pip python3-pytest valgrind
升级cmake版本(clamav 最新版要求cmake版本3.14 以上,根据实际情况,如果本地版本过低iu需要升级)这里我直接下载编译好的二进制文件
下载好上传到目标机器
依次执行
mkdir /opt/cmake
sh cmake-3.29.5-linux-x86_64.sh --prefix=/opt/cmake --skip-license
执行完毕后将cmake路径加入环境变量中
export PATH=/opt/cmake/bin:$PATH
source ~/.bashrc
以上步骤完成后,可以开始安装clamav
以下命令依次执行
tar -xvf clamav-1.3.1.tar.gz
cd clamav-1.3.1/
mkdir build && cd build
cmake .. -G Ninja \
-D CMAKE_BUILD_TYPE=Debug \
-D OPTIMIZE=OFF \
-D CMAKE_INSTALL_PREFIX=`pwd`/install \
-D ENABLE_EXAMPLES=ON \
-D ENABLE_STATIC_LIB=ON \
-D ENABLE_SYSTEMD=OFF
cmake --build .
ctest --verbose
cmake --build . --target install
cmake 执行过程冲会出现多个依赖,逐个解决,我这里列出我这环境缺少的依赖以及解决的方法
ps:我这里用的是阿里的国内的yum源
CMake Error at /opt/cmake/share/cmake-3.29/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find Libcheck (missing: LIBCHECK_INCLUDE_DIR LIBCHECK_LIBRARY)
安装以下依赖解决
yum install check
yum install check-devel
CMake Error at /FindPackageHandleStandardArgs.cmake:230 (message):Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY OPENSSL_INCLUDE_DIR)
安装以下依赖解决
yum install openssl-devel
CMake Error at /opt/cmake/share/cmake-3.29/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find BZip2 (missing: BZIP2_LIBRARIES BZIP2_INCLUDE_DIR)
安装以下依赖解决
yum install bzip2-devel
CMake Error at /opt/cmake/share/cmake-3.29/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find LibXml2 (missing: LIBXML2_LIBRARY LIBXML2_INCLUDE_DIR)
安装以下依赖解决
yum install libxml2-devel
CMake Error at /opt/cmake/share/cmake-3.29/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find PCRE2 (missing: PCRE2_LIBRARIES PCRE2_INCLUDE_DIR)
安装以下依赖解决
yum install pcre2-devel
Make Error at /opt/cmake/share/cmake-3.29/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find JSONC (missing: JSONC_LIBRARIES JSONC_INCLUDE_DIRS)
安装以下依赖解决
yum install json-c-devel.x86_64
Make Error at /opt/cmake/share/cmake-3.29/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find CURL (missing: CURL_LIBRARY CURL_INCLUDE_DIR)
安装以下依赖解决
yum install curl-devel
CMake Error at cmake/FindCURSES.cmake:143 (message):
Unable to find ncurses or pdcurses
安装以下依赖解决
yum install ncurses-devel
CMake Error at /opt/cmake/share/cmake-3.29/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find Milter (missing: Milter_LIBRARY Milter_INCLUDE_DIR)
安装以下依赖解决
yum install sendmail-devel
进入安装目录下的 bin目录:
cd install/bin/
创建freshclam配置文件:
cp ../etc/freshclam.conf.sample ../etc/freshclam.conf
打开freshclam.conf,加#注释掉Example那一行
创建ClamAV用户:
groupadd clamav && useradd -g clamav clamav && id clamav
修改目录权限:
chmod 777 install/share/clamav/
下载病毒库:./freshclam
扫描目录下是否有病毒文件:./clamscan ../etc/,可以看到,在/etc目录下放的一个测试样本文件,被ClamAV成功给扫描出来了