如何为Yocto项目生成离线man手册副本?含PDF及官方方案咨询
生成嵌入式设备已安装软件包Man手册本地副本的方案
一、直接从目标设备提取并转换为PDF
如果设备已部署完成,可通过以下步骤获取并转换man手册:
定位并拷贝设备上的man文件
嵌入式设备的man手册通常存放在/usr/share/man或/usr/man目录下,用scp批量拷贝到本地:scp -r root@your-device-ip:/usr/share/man/* ./local-man-files/若不确定路径,可先在设备上执行
man --path确认man页的搜索路径。批量转换为PDF格式
本地安装man-db和ghostscript(提供ps2pdf工具)后,用脚本批量转换:# 遍历所有压缩的man文件(.gz后缀) for man_gz in ./local-man-files/**/*.gz; do # 提取文件名,去掉.gz后缀作为PDF文件名 pdf_file="${man_gz%.gz}.pdf" # 直接读取本地man文件并转PDF man -l "$man_gz" | ps2pdf - "$pdf_file" done转换后的PDF会和原man文件同目录,文件名一一对应。
二、Yocto官方构建阶段生成手册的方法
Yocto提供原生机制支持生成和导出软件包的man手册,无需等到设备部署后提取:
构建镜像时包含man手册
在build/conf/local.conf中添加配置,让构建的镜像包含所有已安装软件包的man手册:IMAGE_FEATURES += "manuals"构建完成后,可从镜像文件(如
tmp/deploy/images/<your-machine>/core-image-minimal-<your-machine>.rootfs.tar.gz)中解压出usr/share/man目录,获取完整的man手册。单独生成指定软件包的man手册
若只需特定软件包的man页,可通过bitbake单独构建该包并提取:# 构建目标软件包,完成后进入其工作目录 bitbake <package-name> -c do_install cd tmp/work/<target-arch>/<package-name>/<version>/image/usr/share/man该目录下就是该软件包编译生成的man文件,直接拷贝即可。
批量生成PDF(构建环境内)
在Yocto构建环境中,可遍历tmp/work下所有软件包的image/usr/share/man目录,用之前的转换脚本批量生成PDF,无需依赖设备。
内容的提问来源于stack exchange,提问作者Brian
相关产品推荐
相关产品推荐

