Yocto构建Apache2后目标设备缺失httpd二进制文件的排查求助
Yocto构建Apache2后目标设备无httpd二进制文件的排查建议
确认apache2是否被添加到镜像安装列表
检查local.conf或自定义镜像配方(如core-image-custom.bb)中,是否存在IMAGE_INSTALL:append = " apache2"(注意开头空格)。也可通过命令直接查看最终生效的安装列表:bitbake -e <你的镜像名称> | grep -i IMAGE_INSTALL确保输出结果里包含
apache2。验证apache2配方的构建完整性
重新构建apache2配方,排查是否存在编译/安装失败:bitbake apache2 -c cleanall && bitbake apache2若过程无报错,检查配方的镜像安装目录,确认httpd是否生成:
ls tmp/work/<你的架构>/apache2/2.4.60-r0/image/usr/sbin/若该目录下无httpd,查看构建日志定位问题:
cat tmp/work/<你的架构>/apache2/2.4.60-r0/temp/log.do_compile cat tmp/work/<你的架构>/apache2/2.4.60-r0/temp/log.do_install检查镜像打包时是否包含apache2
查看镜像的包清单文件,确认apache2被纳入镜像:grep apache2 tmp/deploy/images/<你的目标板>/<你的镜像名称>.manifest也可直接挂载镜像文件(如
.ext4格式),检查文件系统内的/usr/sbin/httpd是否存在:sudo mount tmp/deploy/images/<你的目标板>/<你的镜像名称>.rootfs.ext4 /mnt ls /mnt/usr/sbin/httpd sudo umount /mnt确认meta-openembedded中apache2配方的正确性
检查当前kirkstone分支下的apache2配方是否存在且配置正确:cat meta-openembedded/meta-oe/recipes-httpd/apache2/apache2_2.4.60.bb重点查看
FILES_${PN}配置项,确保包含${sbindir}/httpd,保证httpd二进制文件会被打包到最终包中。排查配置覆盖或依赖冲突
检查是否有配置移除了apache2:bitbake -e <你的镜像名称> | grep -i IMAGE_INSTALL_remove同时确认当前使用的apache2配方来源正确:
bitbake-layers show-recipes apache2
内容的提问来源于stack exchange,提问作者Raj
相关产品推荐
相关产品推荐

