RHEL8源码编译Wireshark 3.6.6无法安装man页面如何解决
RHEL8 源码编译 Wireshark 3.6.6 无 man 手册页解决方法
问题根源是cmake配置阶段未满足man页生成依赖,构建目标被静默关闭,无报错提示;且控制man页构建的BUILD_manpages属于cmake高级选项,不会在源码包附带的通用INSTALL、README文档中说明,因此常规文档检索找不到对应开关。按以下步骤操作即可修复:
- 第一步:安装缺失的man页生成依赖
你之前安装的pod2man仅负责部分perl附属工具的文档转换,Wireshark核心组件的man页依赖asciidoc工具链生成,RHEL8下直接执行安装:
缺该依赖时cmake不会抛出致命错误,会自动禁用man页构建目标,导致后续make、install步骤完全不会处理man页文件,这是二进制程序正常但找不到man页的核心原因。dnf install -y asciidoc asciidoctor - 第二步:清理旧构建缓存,重新配置cmake参数
回到wireshark-3.6.6源码根目录,删除之前生成的cmake缓存文件,显式开启man页构建开关:
配置执行完成后,查看终端输出的配置汇总表,确认rm -rf CMakeCache.txt CMakeFiles/ cmake -G "Unix Makefiles" -DBUILD_manpages=ONBuild manpages项显示为YES,再进入编译步骤。如果需要指定安装路径前缀,可以追加-DCMAKE_INSTALL_PREFIX=/usr参数,对应系统默认的软件安装路径。 - 第三步:重新编译安装
make -j$(nproc) make DESTDIR=/tmp/rpmbuild install - 结果验证
安装完成后,可在对应DESTDIR路径下的share/man子目录找到所有Wireshark组件的man手册页,覆盖wireshark、tshark、dumpcap、editcap、capinfos等全部随包工具。
打包提示:如果是制作RPM包,直接把
-DBUILD_manpages=ON追加到spec文件的cmake参数段即可,man页会自动安装到标准%{_mandir}路径下,不需要额外做路径调整。
内容的提问来源于stack exchange,提问作者Garnet
相关产品推荐
相关产品推荐

