Skip to content

希望改善一下在Actions-OpenWrt中编译时的环境问题,宿主机缺失 functions.sh 导致的脚本执行报错 #201

@I-agree

Description

@I-agree

cp -fpR /workdir/openwrt/build_dir/target-aarch64_generic_musl/root-rockchip /workdir/openwrt/build_dir/target-aarch64_generic_musl/root.orig-rockchip
/workdir/openwrt/build_dir/target-aarch64_generic_musl/root-rockchip/etc/init.d/qmodem_usage_stats: line 7: /lib/functions.sh: No such file or directory
/workdir/openwrt/build_dir/target-aarch64_generic_musl/root-rockchip/etc/init.d/qmodem_init: line 6: /lib/functions.sh: No such file or directory

如果 base-files 真的没安装,编译会直接在最初的几分钟就崩掉(报 libc 缺失)。既然已经跑到了 luci-base 阶段,说明:
OpenWrt 内部安装没问题。
报错来自于 Host (Ubuntu) 的脚本校验。
当 luci-base 打包时,它会扫描所有的依赖项。如果某个插件的 postinst(安装后脚本)写得不规范,在打包预览阶段就去执行 . /lib/functions.sh,而 Ubuntu 宿主机刚好没这个文件,就会报错。

--- 编译环境补丁 ---

解决 GitHub Actions 宿主机缺失 functions.sh 导致的脚本执行报错

if [ -f "$(pwd)/package/base-files/files/lib/functions.sh" ]; then
sudo mkdir -p /lib
sudo ln -sf $(pwd)/package/base-files/files/lib/functions.sh /lib/functions.sh
echo "成功建立宿主机 /lib/functions.sh 软链接"
fi

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions