fix: deploy.sh + package-offline.sh offline mode support

This commit is contained in:
tian 2026-07-21 14:51:49 +08:00
parent 3ce5bff933
commit 49bfdf059a
2 changed files with 43 additions and 18 deletions

View File

@ -223,20 +223,15 @@ EOF
# 安装 Media Server
cmd_install_media_server() {
echo -e "${BLUE}[1/5] 安装 Media Server...${NC}"
# 检查编译产物
if [ ! -f "$BUILD_DIR/safesight-edge-server" ]; then
# 离线包模式:二进制在脚本同目录
SCRIPT_DIR_OVERRIDE="$(cd "$(dirname "$0")" && pwd)"
if [ -f "$SCRIPT_DIR_OVERRIDE/safesight-edge-server" ]; then
BUILD_DIR="$SCRIPT_DIR_OVERRIDE"
echo -e "${GREEN}${NC} 使用离线包二进制: $BUILD_DIR/safesight-edge-server"
SCRIPT_DIR_OFFLINE="$(cd "$(dirname "$0")" && pwd)"
if [ -f "$SCRIPT_DIR_OFFLINE/safesight-edge-server" ]; then
BUILD_DIR="$SCRIPT_DIR_OFFLINE"
PROJECT_DIR="$SCRIPT_DIR_OFFLINE"
echo -e "${GREEN}${NC} 离线包模式"
fi
fi
if [ ! -f "$BUILD_DIR/safesight-edge-server" ]; then
if [ ! -f "$BUILD_DIR/safesight-edge-server" ]; then
echo -e "${RED}错误: 未找到编译好的 safesight-edge-server${NC}"
echo "请先编译: cd $PROJECT_DIR && cmake --build build"
exit 1
fi
@ -255,7 +250,6 @@ if [ ! -f "$BUILD_DIR/safesight-edge-server" ]; then
mkdir -p "$INSTALL_DIR/scripts"
if [ -f "$PROJECT_DIR/scripts/ops.sh" ]; then
cp "$PROJECT_DIR/scripts/ops.sh" "$INSTALL_DIR/scripts/"
chmod +x "$INSTALL_DIR/scripts/ops.sh"
echo -e "${GREEN}${NC} 已复制运维脚本: ops.sh"
fi
if [ -f "$PROJECT_DIR/scripts/monitor_hw.sh" ]; then

View File

@ -1,6 +1,6 @@
#!/bin/bash
# 离线升级包构建脚本
# 编译所有组件并打包,用于内网生产设备升级
# 编译所有组件并打包,可在无网络的生产设备上完整部署
set -e
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
@ -24,21 +24,52 @@ cd "$PROJECT_DIR"
# 打包
echo "[3/3] 打包..."
mkdir -p "$BUILD_DIR"
# 核心二进制
cp build/safesight-edge-server "$BUILD_DIR/"
cp agent/safesight-edge-agent "$BUILD_DIR/"
# 部署脚本和配置
cp scripts/deploy.sh "$BUILD_DIR/"
cp scripts/upgrade-from-old.sh "$BUILD_DIR/"
cp -r scripts/deploy/ "$BUILD_DIR/"
cp -r scripts/deploy/ "$BUILD_DIR/deploy/"
# 插件和库
if [ -d build/plugins ]; then
mkdir -p "$BUILD_DIR/plugins"
cp build/plugins/*.so "$BUILD_DIR/plugins/" 2>/dev/null || true
fi
find build/ -maxdepth 1 -name '*.so' -exec cp {} "$BUILD_DIR/" \; 2>/dev/null || true
# web 静态文件
if [ -d web ]; then
cp -r web "$BUILD_DIR/"
fi
# 模型文件
if [ -d models ]; then
mkdir -p "$BUILD_DIR/models"
cp models/*.rknn "$BUILD_DIR/models/" 2>/dev/null || true
fi
# 运维脚本
if [ -f scripts/ops.sh ]; then cp scripts/ops.sh "$BUILD_DIR/"; fi
if [ -f scripts/monitor_hw.sh ]; then cp scripts/monitor_hw.sh "$BUILD_DIR/"; fi
if [ -f scripts/ddr_mode.sh ]; then cp scripts/ddr_mode.sh "$BUILD_DIR/"; fi
# 创建说明文件
cat > "$BUILD_DIR/README.txt" << 'EOF'
离线升级包使用说明
==================
离线升级包 - SafeSight Edge Server
====================================
新设备(已升级过):
新设备(从新系统安装):
sudo ./deploy.sh install
(需要 AGENT_TOKEN 参数)
已部署过 safesight-edge-server 的设备升级:
sudo ./deploy.sh upgrade
旧设备(首次从 rk3588-media-server 升级):
首次从旧版 rk3588-media-server/3588admin 升级:
sudo ./upgrade-from-old.sh
EOF