vernesong / OpenClash

A Clash Client For OpenWrt
MIT License
16.8k stars 3.1k forks source link

使用imageBuilder编译只有clash在Enabling的时候报错 #1930

Closed zhangguanzhang closed 2 years ago

zhangguanzhang commented 2 years ago
Configuring luci-proto-ncm.
Configuring kmod-net-rtl8192su.

Finalizing root filesystem...
/root/op/openwrt-imagebuilder-rockchip-armv8.Linux-x86_64/build_dir/target-aarch64_generic_musl/root-rockchip/etc/init.d/openclash: line 3: /usr/share/openclash/openclash_ps.sh: No such file or directory
/root/op/openwrt-imagebuilder-rockchip-armv8.Linux-x86_64/build_dir/target-aarch64_generic_musl/root-rockchip/etc/init.d/openclash: line 4: /usr/share/openclash/ruby.sh: No such file or directory
/root/op/openwrt-imagebuilder-rockchip-armv8.Linux-x86_64/build_dir/target-aarch64_generic_musl/root-rockchip/etc/init.d/openclash: line 5: /usr/share/openclash/log.sh: No such file or directory
/root/op/openwrt-imagebuilder-rockchip-armv8.Linux-x86_64/build_dir/target-aarch64_generic_musl/root-rockchip/etc/init.d/openclash: line 14: uci: command not found
/root/op/openwrt-imagebuilder-rockchip-armv8.Linux-x86_64/build_dir/target-aarch64_generic_musl/root-rockchip/etc/init.d/openclash: line 15: uci: command not found
/root/op/openwrt-imagebuilder-rockchip-armv8.Linux-x86_64/build_dir/target-aarch64_generic_musl/root-rockchip/etc/init.d/openclash: line 20: uci: command not found
/root/op/openwrt-imagebuilder-rockchip-armv8.Linux-x86_64/staging_dir/host/bin/sed: can't read /usr/lib/lua/luci/dispatcher.lua: No such file or directory
/root/op/openwrt-imagebuilder-rockchip-armv8.Linux-x86_64/staging_dir/host/bin/sed: can't read /usr/lib/lua/luci/dispatcher.lua: No such file or directory
Enabling AdGuardHome
Enabling aliyundrive-webdav
Enabling aria2
Enabling arpbind
Enabling autoreboot
Enabling boot
Enabling cgroupfs-mount
Enabling cifs
Enabling cron
Enabling ddns
Enabling dnsmasq
Enabling dockerd
Enabling done
Enabling dropbear
Enabling eqos
Enabling etherwake
Enabling fa-rk3328-pwmfan
Enabling filebrowser
Enabling firewall
Enabling frp
Enabling fstab
Enabling gpio_switch
Enabling haveged
Enabling hd-idle
Enabling irqbalance
Enabling istore
Enabling kcptun
Enabling kms
Enabling led
Enabling lm-sensors
Enabling log
Enabling mdadm
Enabling mia
Enabling minidlna
Enabling miniupnpd
Enabling netdata
Enabling network
Enabling nfs
Enabling nfsd
Enabling nlbwmon
./etc/init.d/openclash: line 3: /usr/share/openclash/openclash_ps.sh: No such file or directory
./etc/init.d/openclash: line 4: /usr/share/openclash/ruby.sh: No such file or directory
./etc/init.d/openclash: line 5: /usr/share/openclash/log.sh: No such file or directory
./etc/init.d/openclash: line 14: uci: command not found
./etc/init.d/openclash: line 15: uci: command not found
./etc/init.d/openclash: line 20: uci: command not found
Enabling openclash
zhangguanzhang commented 2 years ago

@vernesong 我在文件luci-app-openclash/root/etc/init.d/openclash 里第二行加了这个判断防止被在打包的时候被执行解决:

[ ! -f /etc/openwrt_release ] && exit 0

根源是该启动脚本没有提供纯函数和变量,在main阶段函数外面执行了很多命令导致的,看了下其他的init.d下的管理脚本都是按照标准实现的启动重启的函数就行了,让上层调用。 不改脚本的话可以像上面我这样只有加个判断。在openwrt的chroot或者真实的openwrt里该脚本才能启动

vernesong commented 2 years ago

好的