⛄ Sync 2026-03-31 23:53:13

This commit is contained in:
github-actions[bot] committed 2026-03-31 23:53:13 +08:00
1 parent 029b517c03
commit be9ee994ab
14 files changed
+280 -81

No files matched your search

+19 -8
View File
@@ -22,15 +22,25 @@ NODE_VERSION="${NODE_VERSION:-${NODE_VERSION_V2}}"
OC_TESTED_VERSION="2026.3.28"
# 用户可通过 OC_VERSION 环境变量覆盖安装版本
OC_VERSION="${OC_VERSION:-}"
NODE_BASE="/opt/openclaw/node"
OC_GLOBAL="/opt/openclaw/global"
OC_DATA="/opt/openclaw/data"
# ── 安装路径 (支持自定义) ──
# 从 UCI 配置读取自定义路径,默认为 /opt
# 用户可在 LuCI 界面或通过 uci set openclaw.main.install_path=/mnt/data 设置
# 程序会在此路径下自动创建 openclaw 目录
OC_BASE_PATH="${OC_INSTALL_PATH:-$(uci -q get openclaw.main.install_path || echo '/opt')}"
OC_INSTALL_PATH="${OC_BASE_PATH}/openclaw"
NODE_BASE="${OC_INSTALL_PATH}/node"
OC_GLOBAL="${OC_INSTALL_PATH}/global"
OC_DATA="${OC_INSTALL_PATH}/data"
# ── OverlayFS 兼容性修复 ──
# iStoreOS/OpenWrt 上 Docker 的 bind mount (/overlay/upper/opt/docker)
# 会导致 OverlayFS 合并视图中 /opt 完全不可写 (mkdir 报 "Directory not empty")。
# 解决方案: 将 /overlay/upper/opt bind mount 到 /opt,绕过 OverlayFS 冲突。
# 注意: 仅当基础路径为 /opt 时才需要此修复
_oc_fix_opt() {
# 如果基础路径不是 /opt,无需修复
[ "$OC_BASE_PATH" != "/opt" ] && return 0
# 如果 /opt 可正常写入,无需修复
if mkdir -p /opt/openclaw/.probe 2>/dev/null; then
rmdir /opt/openclaw/.probe 2>/dev/null
@@ -97,7 +107,7 @@ find_oc_entry() {
${OC_GLOBAL}/node_modules/openclaw
${NODE_BASE}/lib/node_modules/openclaw"
# 添加 pnpm 版本化目录 (如 /opt/openclaw/global/5/node_modules/openclaw)
# 添加 pnpm 版本化目录 (如 $OC_GLOBAL/5/node_modules/openclaw)
for ver_dir in "${OC_GLOBAL}"/*/node_modules/openclaw; do
[ -d "$ver_dir" ] 2>/dev/null && search_dirs="$search_dirs
$ver_dir"
@@ -439,7 +449,7 @@ do_setup() {
else
echo " OpenClaw: 最新版"
fi
echo " 安装路径: ${NODE_BASE}"
echo " 安装路径: ${OC_INSTALL_PATH}"
echo " 数据路径: ${OC_DATA}"
echo ""
@@ -493,10 +503,11 @@ do_check() {
echo " 配置: 未初始化"
fi
# 磁盘使用
# 磁盘使用 (检测实际安装路径)
local used
used=$(du -sh /opt/openclaw 2>/dev/null | awk '{print $1}')
used=$(du -sh "$OC_INSTALL_PATH" 2>/dev/null | awk '{print $1}')
echo " 磁盘: ${used:-N/A}"
echo " 安装路径: ${OC_INSTALL_PATH}"
# libc 类型
echo " C库: $(detect_libc)"
@@ -651,7 +662,7 @@ do_setup_offline() {
echo "╚══════════════════════════════════════════════════════════════╝"
echo ""
echo " 架构: $(uname -m)"
echo " 安装路径: ${NODE_BASE}"
echo " 安装路径: ${OC_INSTALL_PATH}"
echo " 数据路径: ${OC_DATA}"
echo " 离线包: ${offline_dir}"
echo ""