图标升级
This commit is contained in:
94
install.sh
94
install.sh
@@ -1,10 +1,92 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# apt install -y python3-pyqt6.qtwebengine
|
||||
# apt install -y python3-pyqt6.qtquick3d
|
||||
# apt install -y python3-pyqt6.qtquick
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
|
||||
VENVDIR="$SCRIPT_DIR/venv"
|
||||
|
||||
echo "== Printer_Screen_Menu 安装脚本 =="
|
||||
|
||||
if ! command -v apt >/dev/null 2>&1; then
|
||||
echo "错误:本脚本需要 apt(Debian/Ubuntu)。请在支持 apt 的系统上运行。"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
SUDO=""
|
||||
if [ "$(id -u)" -ne 0 ]; then
|
||||
SUDO="sudo"
|
||||
fi
|
||||
|
||||
echo "更新 apt 索引并安装基础包(python3-venv, python3-pip)..."
|
||||
$SUDO apt-get update -y
|
||||
$SUDO apt-get install -y python3-venv python3-pip
|
||||
|
||||
echo "检测可用的 PyQt6 apt 包并尝试通过 apt 安装(优先使用系统包)..."
|
||||
pyqt_candidates=(
|
||||
python3-pyqt6
|
||||
python3-pyqt6.qt6-opengl
|
||||
python3-pyqt6.qtsvg
|
||||
python3-pyqt6.qt6widgets
|
||||
python3-pyqt6.qtopengl
|
||||
python3-pyqt6.qt6opengl
|
||||
)
|
||||
found_pyqt=()
|
||||
for p in "${pyqt_candidates[@]}"; do
|
||||
if apt-cache show "$p" >/dev/null 2>&1; then
|
||||
found_pyqt+=("$p")
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "${#found_pyqt[@]}" -gt 0 ]; then
|
||||
echo "通过 apt 安装: ${found_pyqt[*]}"
|
||||
$SUDO apt-get install -y "${found_pyqt[@]}"
|
||||
else
|
||||
echo "未检测到合适的 PyQt6 apt 包,将在虚拟环境内使用 pip 安装 PyQt6 作为回退。"
|
||||
install_pyqt_via_pip=1
|
||||
fi
|
||||
|
||||
if apt-cache show python3-opengl >/dev/null 2>&1; then
|
||||
echo "检测到系统级 python3-opengl,尝试通过 apt 安装(可选加速)。"
|
||||
$SUDO apt-get install -y python3-opengl
|
||||
else
|
||||
echo "未检测到 python3-opengl,PyOpenGL 将在虚拟环境中通过 pip 安装。"
|
||||
fi
|
||||
|
||||
echo "创建虚拟环境(如果不存在): $VENVDIR"
|
||||
if [ ! -d "$VENVDIR" ]; then
|
||||
python3 -m venv "$VENVDIR"
|
||||
else
|
||||
echo "虚拟环境已存在,跳过创建。"
|
||||
fi
|
||||
|
||||
echo "激活虚拟环境并升级 pip..."
|
||||
# shellcheck disable=SC1090
|
||||
source "$VENVDIR/bin/activate"
|
||||
python -m pip install --upgrade pip setuptools wheel
|
||||
|
||||
if [ "${install_pyqt_via_pip:-0}" = "1" ]; then
|
||||
echo "在 venv 中通过 pip 安装 PyQt6(回退)..."
|
||||
pip install PyQt6
|
||||
fi
|
||||
|
||||
REQ_FILE="$SCRIPT_DIR/requirements.txt"
|
||||
if [ -f "$REQ_FILE" ]; then
|
||||
echo "通过 requirements.txt 安装 pip 依赖..."
|
||||
pip install -r "$REQ_FILE"
|
||||
else
|
||||
echo "找不到 requirements.txt,安装常用依赖..."
|
||||
pip install requests numpy PyOpenGL qrcode Pillow
|
||||
fi
|
||||
|
||||
echo "\n依赖安装完成。要使用本项目:"
|
||||
echo "1) 激活虚拟环境:source venv/bin/activate"
|
||||
echo "2) 启动程序:python3 main.py"
|
||||
echo "接下来进行 systemd 服务配置... (将会安装于 /opt/Printer_Screen_Menu)"
|
||||
|
||||
|
||||
echo "Stopping existing service..."
|
||||
systemctl disable printer-screen.service
|
||||
systemctl stop printer-screen.service
|
||||
|
||||
echo "Installing Printer Screen Menu..."
|
||||
echo "Cleaning up old installation..."
|
||||
rm -rf /etc/systemd/system/printer-screen.service
|
||||
rm -rf /opt/Printer_Screen_Menu
|
||||
@@ -16,7 +98,7 @@ cp -r ./. /opt/Printer_Screen_Menu/
|
||||
echo "Setting up systemd service..."
|
||||
chmod +x /opt/Printer_Screen_Menu/run.sh
|
||||
|
||||
systemctl disable printer-screen.service
|
||||
|
||||
cp printer-screen.service /etc/systemd/system/
|
||||
systemctl daemon-reload
|
||||
systemctl enable printer-screen.service
|
||||
|
||||
Reference in New Issue
Block a user