CentOS中编译wireshark3.0以上版本并上传至本地yum源

CentOS中编译wireshark3.0以上版本并上传至本地yum源

一、摘要

目前,wireshark的版本已更新至3.0以上,而在CentOS系统中还在使用较旧的wireshark版本。如在CentOS7的官方yum源或者阿里云源中,存放的是wireshark-1.10的rpm包,在CentOS8的官方yum源或者阿里云源中,存放的是wireshark-2.6的rpm包。这些相对老旧的wireshark版本在功能上已经落后,不能适应对抓包的新要求。作者决定在CentOS系统中编译新的wireshark源码,并制作RPM包上传至本地服务器yum源中,以方便局域网内的其他同事使用。本文主要讲述了如何在CentOS中编译wireshark3.0源码以及如何制作rpm包并上传至本地yum源。
CentOS7中的wireshark版本
CentOS8中的wireshark版本
二、说明

本文默认读者已经具备以下能力:

1、了解yum命令的基本作用和用法
2、了解cmake命令的基本作用和用法
3、了解rpmbuidl命令的基本作用和用法
4、了解createrepo命令的基本作用和用法

如果你对以上四条还不是很了解,建议先在百度上搜索其相关知识进行简单学习,否则以下内容的阅读可能会稍有困难。

三、编译wireshark源码

1、下载wireshark源码

这里介绍下载wireshark源码的两种方式:

(1)输入命令:

git clone https://code.wireshark.org/review/wireshark

这里存放的wireshark源码一定是最新版的wireshark源码,也是三点零以上版本的源码。

(2)打开网站 https://www.wireshark.org/download/src/all-versions/

这里有全部版本的wireshark源码,找到最新版的源码下载到Downloads目录中。

2、升级cmake

Wireshark要求3.5以上的cmake版本,这里需要下载cmake3。
在终端窗口执行如下命令:

yum install -y cmake3

3、搭建环境

作者是在新安装的CentOS7标准版的进行wireshark编译的,这意味着编译过程中缺少的依赖可能是最多的,总结了一下,在编译过程中我总共安装了以下这些package包。

yum install -y git
yum install -y glib2
yum install -y glib2-devel
yum install -y libgcrypt-devel
yum install -y flex
yum install -y byacc
yum install -y libpcap-devel
yum install -y system-devel
yum install -y libssh
yum install -y libssh-devel
yum install -y qt5-qtbase-devel
yum install -y qt5-qttools
yum install -y qt5-qtmultimedia
yum install -y qt5-qtmultimedia-devel
yum install -y qt5-qtsvg-devel
yum install -y python34

各位同仁可以直接执行这些命令,就可以完成wireshark编译的相关依赖。

4、编译

在wireshark源码所在的目录中创建新的目录wsbuild:

mkdir wsbuild

编译wireshark源码

cmake3 -DCMAKE_INSTALL_PREFIX=/user ../wireshark

在小节3中安装的软件版是针对的CentOS7标准版,如果你安装的是CentOS7精简版或者CentOS8版本,可能还需要安装其它的依赖软件,这里大可不必担心,可以根据编译过程中的错误提示来安装其他相关的依赖软件。
如果在编译过程中出现如下错误:

Could NOT find ***(***_EXECUTABLE)

这证明你缺少这个可执行文件,可以在yum源中查找该软件包,然后进行下载。

yum list | grep ***
yum install -y ***

而如果你在编译过程中出现如下错误:

Could NOT find ***(***_LIBARIES)

这证明你缺少这个库文件,可以在yum源中查找该文件,然后进行下载

yum list | grep ***
yum install -y ***-devel       #库文件在***-devel中

这里需要注意下,你在yum源中搜索软件包名称可能会跟yum中列出的软件包名称稍有差异。比如你在编译过程中可能会出现错误

Could NOT find LEX(LEX_EXECUTABLE)

而当你在yum源中搜索LEX时

Yum list | grep LEX

会发现列出的软件包中并没有叫LEX软件包,而是一个叫FLEX软件包,这时下载FLEX就可以。即,名称不一定完全相符,下载搜索出的第一个软件包即可。然后继续执行命令:

cmake3 -DCMAKE_INSTALL_PREFIX=/user ../wireshark

当出现以下输出时证明wireshark已编译完成。

--Configuring done
--Generating done
--Build files have been written to: ***/wsbuild

此时如果你想在本机上安装这个版本的wireshark,可在该文件夹下执行

make
make install

至此wireshark3.0以上版本在CentOS系统中的编译和安装工作已经完成。

5、制作RPM包

编译完成后,在目录wsbuild/packaging/rpm/SPECS中会自动生成一个wireshark.spec文件,这个文件是生成wireshark.rpm的钥匙,有了它,RPM包的生成只是两行代码的事情。执行命令:

rpmbuild -ba wireshark.spec

此时会提示你在rpmbuild/SOURCES目录中找不到源代码文件,将源代码压缩包复制到此文件夹下。然后进入刚才的目录wsbuild/packaging/rpm/SPECS,执行命令:

rpmbuild -ba wireshark.spec

这时会经过一个长时间的编译过程,当这个过程结束时,你会发现在rpmbuild/RPMS/x86_64目录中有以下三个rpm包,这是rpm包的制作便大功告成。
生成的rpm包
说明:当我们执行rpmbuidl命令时,该命令会自动在我们账户的根目录中自动红创建出如下格式的目录:

rpmbuild
   |—BUILD
   |—BUILDROOT
   |—RPMS
   |—SOURCES
   |—SPECS
   |—SRPMS

6、制作本地yum源

开yum源文件存放目录:

cd /etc/yum.repo.d/

创建本地yum源文件:

vim CentOS-Local.repo

输入如下内容:

[Local]
Name=CentOS-Local
Baserul=file:///home/nova/rpmbuild/RPMS/x86_64  #此处输入你创建的rpm包所在的目录
Gpgcheck=0
Enabled=1

创建本地仓库:

createrepo /home/nova/rpmbuild/RPMS/x86_64  #此处的目录同样是你创建rpm包所在的目录

清理并更新yum源:

yum clean all
yum makecache

此时当你再次输入yum list | grep wireshark命令时,你会发现已经有wireshark3.0以上版本的rpm包了,而且是在Local仓库中
在这里插入图片描述
此时执行命令:

yum install -y wireshark3.0

便可以正常安装wireshark3.0版本。

四、结语

网络的基本理念是分享,写作此文回报社会。
草草成章,不当之处,望各位大神批评指正。
留下个人QQ,以方便各位交流:767913903。

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值