#!/bin/bash # 一键构建 deb 包脚本 # 用法: bash build-deb.sh [--install] set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "$SCRIPT_DIR" # 从 changelog 解析版本号 VERSION=$(dpkg-parsechangelog -l debian/changelog -S Version) PKG_NAME="dde-graphics-driver-applet" ARCH=$(dpkg --print-architecture) DEB_FILE="${PKG_NAME}_${VERSION}_${ARCH}.deb" RELEASE_DIR="${SCRIPT_DIR}/release" echo "=== 清理旧构建 ===" rm -rf build-deb obj-x86_64-linux-gnu rm -f ../${PKG_NAME}_*.deb ../${PKG_NAME}_*.changes ../${PKG_NAME}_*.buildinfo echo "=== 构建 deb 包 (版本: ${VERSION}) ===" dpkg-buildpackage -us -uc -b echo "" echo "=== 收集构建产物到 release/ ===" mkdir -p "${RELEASE_DIR}" # 移动 deb、changes、buildinfo 到 release 目录 for f in ../${PKG_NAME}_${VERSION}_${ARCH}.deb \ ../${PKG_NAME}_${VERSION}_${ARCH}.changes \ ../${PKG_NAME}_${VERSION}_${ARCH}.buildinfo; do [ -f "$f" ] && mv "$f" "${RELEASE_DIR}/" done # dbgsym 调试包(如果存在) for f in ../${PKG_NAME}-dbgsym_${VERSION}_${ARCH}.deb; do [ -f "$f" ] && mv "$f" "${RELEASE_DIR}/" done echo "" echo "=== 构建完成 ===" DEB_PATH="${RELEASE_DIR}/${DEB_FILE}" echo "包路径: ${DEB_PATH}" dpkg-deb -I "${DEB_PATH}" | grep -E "Package|Version|Architecture|Depends|Description" echo "" echo "release 目录内容:" ls -lh "${RELEASE_DIR}/" # 可选:自动安装 if [ "$1" = "--install" ]; then echo "" echo "=== 安装 deb 包 ===" sudo apt install -y "${DEB_PATH}" echo "=== 重启任务栏 ===" systemctl --user restart dde-shell@DDE echo "=== 安装完成 ===" else echo "" echo "提示: 运行 'bash build-deb.sh --install' 可自动安装并重启任务栏" echo " 或手动安装: sudo apt install ${DEB_PATH}" fi