98 lines
2.8 KiB
Bash
98 lines
2.8 KiB
Bash
#!/bin/bash
|
|
# 离线升级包构建脚本
|
|
# 编译所有组件并打包,可在无网络的生产设备上完整部署
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
PROJECT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
PACKAGE_NAME="safesight-upgrade-$(date +%Y%m%d-%H%M%S)"
|
|
BUILD_DIR="/tmp/$PACKAGE_NAME"
|
|
|
|
echo "========== 构建离线升级包 =========="
|
|
echo ""
|
|
|
|
# 编译
|
|
echo "[1/3] 编译 Edge Server..."
|
|
cd "$PROJECT_DIR"
|
|
bash scripts/build.sh -m -j4
|
|
|
|
echo "[2/3] 编译 Agent..."
|
|
cd "$PROJECT_DIR/agent"
|
|
go build -o safesight-edge-agent ./cmd/safesight-agent
|
|
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/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 [ -d configs ]; then
|
|
mkdir -p "$BUILD_DIR/configs"
|
|
cp -r configs/templates "$BUILD_DIR/configs/" 2>/dev/null || true
|
|
cp -r configs/profiles "$BUILD_DIR/configs/" 2>/dev/null || true
|
|
cp -r configs/overlays "$BUILD_DIR/configs/" 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
|
|
if [ -f scripts/install_deps.sh ]; then cp scripts/install_deps.sh "$BUILD_DIR/"; fi
|
|
|
|
# 系统硬件加速库(从当前设备复制,确保兼容)
|
|
mkdir -p "$BUILD_DIR/lib_deps"
|
|
cp /usr/lib/librknnrt.so* "$BUILD_DIR/lib_deps/" 2>/dev/null || true
|
|
cp /usr/lib/aarch64-linux-gnu/librga.so* "$BUILD_DIR/lib_deps/" 2>/dev/null || true
|
|
cp /usr/lib/aarch64-linux-gnu/librockchip_mpp.so* "$BUILD_DIR/lib_deps/" 2>/dev/null || true
|
|
|
|
# 创建说明文件
|
|
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/3588admin 升级:
|
|
sudo ./upgrade-from-old.sh
|
|
EOF
|
|
|
|
cd /tmp
|
|
tar -czf "$PROJECT_DIR/$PACKAGE_NAME.tar.gz" "$PACKAGE_NAME"
|
|
rm -rf "$BUILD_DIR"
|
|
|
|
echo ""
|
|
echo "✓ 打包完成: $PROJECT_DIR/$PACKAGE_NAME.tar.gz"
|
|
ls -lh "$PROJECT_DIR/$PACKAGE_NAME.tar.gz"
|