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

时间:2019-07-08 18:40:12

标签: bitbake opkg

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

查看带有“ opkg status”的软件包,它表示该软件包已成功安装-“ install ok installed”。但是,没有任何副作用,仅从/var/lib/opkg/info/.postinst运行.postinst文件即可,并且不会报告任何错误。

如何使它正常工作?看来该软件包正在“安装”在rootfs映像中,状态不正确。

1 个答案:

答案 0 :(得分:1)

请参阅Dev manual section Post-Installation Scripts:如果您知道脚本应该在首次引导期间始终在目标上运行,而在rootfs生成期间不应该运行,则可以使用pkg_postinst_ontarget_${PN}()使用最新的Yocto(> = 2.7)。

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

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

# actual post install script here

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

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