映像安装后执行 opkg post 安装脚本

Executing opkg post install script after image installation

我们正在 BitBake 中创建一个文件系统映像,其中一个软件包要求其 post 安装脚本在设备上执行,在映像本身安装到设备上之后,而不是在 rootfs构建服务器正在生成图像。

查看带有"opkg status "的包,它说包已成功安装--"install ok installed"。但是,已经执行了 none 的副作用,只是 运行 来自 /var/lib/opkg/info/.postinst 的 .postinst 文件工作并且没有报告错误.

我如何让它工作?该包似乎在 rootfs 映像中 "installed",状态不正确。

请参阅 Dev manual section Post-Installation Scripts:使用最新的 Yocto (>=2.7),当您知道您的脚本在首次启动期间应始终 运行 在目标上时,您可以使用 pkg_postinst_ontarget_${PN}(),而不是在rootfs 代。

在较旧的 Yocto 版本上,您只需执行 pkg_postinst_ontarget_${PN} 在您的函数中手动执行的操作 pkg_postinst_${PN}():

if [ -n "$D" ]; then
    echo "Delaying until first boot"
    exit 1
fi

# actual post install script here

$D 将在 rootfs 生成期间定义,因此安装后脚本将失败。这意味着脚本将在目标上首次启动期间再次 运行。

最好的选择仍然是修复安装后脚本,以便它在 rootfs 生成期间工作——当然有时这是不可能的。