diff --git a/scripts/deploy.sh b/scripts/deploy.sh index 904ae7d..4b0febe 100755 --- a/scripts/deploy.sh +++ b/scripts/deploy.sh @@ -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 diff --git a/scripts/package-offline.sh b/scripts/package-offline.sh index b1dcf63..a1484a3 100644 --- a/scripts/package-offline.sh +++ b/scripts/package-offline.sh @@ -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