Files
2026-06-26 16:54:55 +08:00

110 lines
2.6 KiB
Bash

#!/bin/bash
# Linux 日志删除助手 - 打包脚本
# 在 UOS 环境中执行此脚本进行打包
set -e # 遇到错误立即退出
echo "=========================================="
echo " Linux 日志删除助手 - 打包脚本"
echo "=========================================="
echo ""
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# 检查是否为 root 用户
if [ "$EUID" -ne 0 ]; then
echo -e "${YELLOW}提示:安装依赖需要 sudo 权限${NC}"
SUDO="sudo"
else
SUDO=""
fi
# 步骤 1: 检查并安装系统依赖
echo ""
echo "步骤 1/4: 检查并安装系统依赖..."
echo "------------------------------------------"
# 更新包列表
$SUDO apt update
# 安装 Python3 和 pip(如果未安装)
if ! command -v python3 &> /dev/null; then
echo "安装 Python3..."
$SUDO apt install -y python3
fi
if ! command -v pip3 &> /dev/null; then
echo "安装 pip3..."
$SUDO apt install -y python3-pip
fi
# 安装 PyQt5
echo "安装 PyQt5..."
$SUDO apt install -y python3-pyqt5
# 步骤 2: 安装 Python 依赖
echo ""
echo "步骤 2/4: 安装 Python 依赖..."
echo "------------------------------------------"
# 安装 PyInstaller
pip3 install --user pyinstaller
# 确保 ~/.local/bin 在 PATH 中
export PATH="$HOME/.local/bin:$PATH"
# 步骤 3: 使用 PyInstaller 打包
echo ""
echo "步骤 3/4: 打包应用程序..."
echo "------------------------------------------"
# 获取脚本所在目录
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cd "$SCRIPT_DIR"
# 清理旧的构建文件
rm -rf build dist __pycache__ *.spec
# 使用 PyInstaller 打包
pyinstaller \
--onefile \
--windowed \
--name "log-cleaner" \
--add-data "gui:gui" \
--hidden-import "PyQt5.QtWidgets" \
--hidden-import "PyQt5.QtCore" \
--hidden-import "PyQt5.QtGui" \
--clean \
main.py
# 步骤 4: 完成
echo ""
echo "步骤 4/4: 打包完成!"
echo "=========================================="
echo ""
echo -e "${GREEN}✓ 打包成功!${NC}"
echo ""
echo "可执行文件位置: dist/log-cleaner"
echo ""
echo "使用方法:"
echo " 1. 将 dist/log-cleaner 复制到 UOS LiveCD 环境"
echo " 2. 赋予执行权限: chmod +x log-cleaner"
echo " 3. 运行: sudo ./log-cleaner"
echo ""
echo "注意事项:"
echo " - 运行时需要 sudo 权限"
echo " - 确保系统已安装 PyQt5 运行时库"
echo ""
# 检查打包结果
if [ -f "dist/log-cleaner" ]; then
echo -e "${GREEN}✓ 可执行文件大小: $(du -h dist/log-cleaner | cut -f1)${NC}"
else
echo -e "${RED}✗ 打包失败,请检查错误信息${NC}"
exit 1
fi