Wireshark是个优秀的网络包嗅探工具,对于学习理解网络知识有很大的帮助。中标麒麟桌面版本没有集成这一软件,所以想自己试着安装并学习一下如何制作RPM包。
学习了《fedora官网RPM包制作指南》后,觉得事情比较简单,主要就是编辑一个SPEC配置文件嘛,加上configure、make、make install等指令,修改修改描述说明什么的就完活了。于是想先找个wireshark源码包,再找一个现成的SPEC文件,比如fedora21的SRPM包中就有,然后稍作修改就可以用rpmbuild工具制作出二进制安装包。实际一动手,远不是那么回事:一运行报出一大堆错误,光是这个现成的SPEC文件就有1000多行,竟是%和$,看都看晕了,别说修改了。怎么办?老老实实地手工编译安装一下吧。
0、准备环境
用前两篇所写的中标麒麟桌面版7.0+全部的SDK环境。wireshark源码包为2.2.2版,解压到家目录下。
1、研究 README和INSTALL文件
通过研究分析README.*和INSTALL.*文件,得知wireshark依赖下列软件包:
gtk3(版本号 >=3.0.0)或 qt,用于生成图形操作界面,有一个就可以。
gtk3-devel
glib2(版本号 >= 2.16.0)
libpcap和libpcap-devel
Perl
Python
flex(版本号 >= 2.5.1)
bison 或yacc
运行命令yum list installed gtk*等查看系统中是否有这些包,用pkg-config --modversion查看库版本是否符合要求。得知系统还缺少libpcap-devel,幸运的是最近中标麒麟官网下载网站更新了,这个包可以直接yum install。
再分析:
“you need to make the dumpcap program set-UID to root”,说明wireshark需要调用dumpcap程序捕获网络包,这需要root权限,因此要为configure命令指定--enable-setuid-install参数。
“Wireshark needs a modern version of zlib to be able to use zlib to read gzipped files; version 1.1.3 is known to work.”,说明wireshark需要1.1.3以上版本的zlib包来读取存在压缩文件中的网络包。
“Wireshark can do some basic decoding of SNMP packets; it can also use the libsmi