#!/bin/bash # BeltTearingServer 版本配置 PKG_NAME="BeltTearingServer" PKG_ARCH="arm64" # 默认版本信息 PKG_VERSION="1.0.0" BUILD_NUMBER="1" PKG_PATH=$HOME/BeltTearingServerPkg CODE_PATH=../ RELEASE_PATH=../Publish echo "==========================================" echo "开始打包 BeltTearingServer 应用程序 v${PKG_VERSION}..." echo "==========================================" if [ -d "${PKG_PATH}" ];then echo "清理旧的打包目录..." rm -irf ${PKG_PATH} fi echo "创建打包目录结构..." mkdir -p ${PKG_PATH}/DEBIAN mkdir -p ${PKG_PATH}/opt/onvm # 复制 BeltTearingServer/onvm 目录下的所有内容到 /opt BELT_TEARING_SERVER_PATH=${CODE_PATH}/GrabBagPrj/BeltTearingServer/onvm echo "复制 BeltTearingServer 内容到 /opt/..." cp -r ${BELT_TEARING_SERVER_PATH}/* ${PKG_PATH}/opt/onvm echo "生成 control 文件..." #control CONTROL_PATH=${PKG_PATH}/DEBIAN/control echo "Package: ${PKG_NAME}" > ${CONTROL_PATH} echo "Version: ${PKG_VERSION}" >> ${CONTROL_PATH} echo "Section: belttearingserver" >> ${CONTROL_PATH} echo "Architecture: ${PKG_ARCH}" >> ${CONTROL_PATH} echo "Priority: optional" >> ${CONTROL_PATH} echo "Maintainer: BeltTearingServer Team " >> ${CONTROL_PATH} echo "Description: BeltTearingServer application" >> ${CONTROL_PATH} echo "生成安装后脚本..." #postinst install exec script POSTINST_PATH=${PKG_PATH}/DEBIAN/postinst cat > ${POSTINST_PATH} << 'EOF' #!/bin/bash echo "配置 BeltTearingServer 应用程序..." # 安装并启用 onvm.service if [ -f /opt/onvm/onvm.service ]; then echo "安装 onvm.service..." cp /opt/onvm/onvm.service /etc/systemd/system/ systemctl daemon-reload systemctl enable onvm.service systemctl start onvm.service echo "onvm.service 已安装并设置为开机自启" else echo "错误: 未找到 onvm.service 文件" fi EOF chmod +x ${POSTINST_PATH} echo "生成卸载脚本..." #postrm uninstall exec script POSTRM_PATH=${PKG_PATH}/DEBIAN/postrm cat > ${POSTRM_PATH} << 'EOF' #!/bin/bash echo "卸载 BeltTearingServer 应用程序..." # 停止并禁用 onvm.service systemctl stop onvm.service 2>/dev/null || true systemctl disable onvm.service 2>/dev/null || true rm -f /etc/systemd/system/onvm.service # 重新加载systemd systemctl daemon-reload echo "BeltTearingServer 应用程序卸载完成!" EOF chmod +x ${POSTRM_PATH} echo "设置文件权限..." # 设置opt目录权限(不包括DEBIAN) chmod -R 755 ${PKG_PATH}/opt # 确保publish目录存在 mkdir -p ${RELEASE_PATH} # 生成带时间戳和构建号的包文件名 TIMESTAMP=$(date +%Y%m%d%H%M%S) DEB_FILENAME="${RELEASE_PATH}/${PKG_NAME}_${PKG_VERSION}_${BUILD_NUMBER}_${PKG_ARCH}_${TIMESTAMP}.deb" # 开始构建 DEB 包 fakeroot dpkg -b ${PKG_PATH} ${DEB_FILENAME} echo "==========================================" echo "打包完成!" echo "生成的包文件: ${DEB_FILENAME}" echo "文件大小: $(ls -lh ${DEB_FILENAME} | awk '{print $5}')" echo "=========================================="