From 9e30226769669292d34414c3db5ee48b23f0039f Mon Sep 17 00:00:00 2001 From: Wang Defa Date: Thu, 25 Dec 2025 10:38:40 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=20Debian=20=E5=8C=85?= =?UTF-8?q?=E7=AE=A1=E7=90=86=EF=BC=8C=E7=AE=80=E5=8C=96=E5=8F=91=E8=A1=8C?= =?UTF-8?q?=E7=89=88=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - CI:简化 Debian 包发布流程,统一使用 stable 发行版 - 移除 bookworm 和 trixie 多发行版支持,简化维护 - postinst:优化安装完成提示,提供清晰的配置和启动步骤 - postrm/prerm:改进卸载和升级前的清理逻辑 - README:更新安装说明,使用 stable 仓库 - install.deb.sh:同步更新仓库配置 --- .gitea/workflows/ci.yaml | 22 +++++------------- README.md | 38 ++++++++----------------------- debian/postinst | 48 ++++++++++++++++++++++++++-------------- debian/postrm | 31 +++++++++++++++----------- debian/prerm | 6 +++-- script/install.deb.sh | 2 +- 6 files changed, 70 insertions(+), 77 deletions(-) diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index 36353f5..6d1e686 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -134,29 +134,19 @@ jobs: } done - # 上传 Debian 包到 Debian Package Registry (支持多个发行版) + # 上传 Debian 包到 Debian Package Registry (通用稳定版) echo "" echo "📦 上传 Debian 包到 Debian Package Registry..." for file in *.deb; do [ ! -f "$file" ] && continue - # 上传到 bookworm (Debian 12) - echo " ⬆️ $file → bookworm" + # 上传到 stable (通用稳定版) + echo " ⬆️ $file → stable" curl -fsSL -X PUT \ -H "Authorization: token ${TOKEN}" \ --upload-file "$file" \ - "https://${REGISTRY}/api/packages/${OWNER}/debian/pool/bookworm/main/upload" || { - echo "❌ Debian 包上传失败: $file (bookworm)" - exit 1 - } - - # 上传到 trixie (Debian 13) - echo " ⬆️ $file → trixie" - curl -fsSL -X PUT \ - -H "Authorization: token ${TOKEN}" \ - --upload-file "$file" \ - "https://${REGISTRY}/api/packages/${OWNER}/debian/pool/trixie/main/upload" || { - echo "❌ Debian 包上传失败: $file (trixie)" + "https://${REGISTRY}/api/packages/${OWNER}/debian/pool/stable/main/upload" || { + echo "❌ Debian 包上传失败: $file (stable)" exit 1 } done @@ -166,7 +156,7 @@ jobs: echo "📝 生成 Release..." export REGISTRY OWNER TAG - RELEASE_DATA=$(python3 -c 'import json,glob,os;r=os.environ["REGISTRY"];o=os.environ["OWNER"];p=os.environ["PRODUCT_NAME"];t=os.environ["TAG"];b=["## Release "+t,"","### 📥 下载方式","","#### 方式 1: 直接下载(推荐)","","点击下面 **Assets** 部分的文件名直接下载。","","#### 方式 2: Generic Package Registry",""]+[f"- [`{f}`](https://{r}/api/packages/{o}/generic/{p}/{t}/{f})" for f in sorted(glob.glob("*.tar.gz"))]+["","#### 方式 3: Debian Repository","","**Debian 12 (bookworm):**","","```bash","# Download GPG key",f"sudo curl https://{r}/api/packages/{o}/debian/repository.key -o /etc/apt/keyrings/gitea-{o}.asc","","# Add repository",f"echo \"deb [signed-by=/etc/apt/keyrings/gitea-{o}.asc] https://{r}/api/packages/{o}/debian bookworm main\" | sudo tee -a /etc/apt/sources.list.d/{o}.list","","# Update and install","sudo apt-get update","sudo apt-get install xxxigcc","```","","**Debian 13 (trixie):**","","```bash","# Download GPG key",f"sudo curl https://{r}/api/packages/{o}/debian/repository.key -o /etc/apt/keyrings/gitea-{o}.asc","","# Add repository",f"echo \"deb [signed-by=/etc/apt/keyrings/gitea-{o}.asc] https://{r}/api/packages/{o}/debian trixie main\" | sudo tee -a /etc/apt/sources.list.d/{o}.list","","# Update and install","sudo apt-get update","sudo apt-get install xxxigcc","```"];print(json.dumps({"tag_name":t,"name":f"Release {t}","body":"\n".join(b),"draft":False,"prerelease":False}))') + RELEASE_DATA=$(python3 -c 'import json,glob,os;r=os.environ["REGISTRY"];o=os.environ["OWNER"];p=os.environ["PRODUCT_NAME"];t=os.environ["TAG"];b=["## Release "+t,"","### 📥 下载方式","","#### 方式 1: 直接下载(推荐)","","点击下面 **Assets** 部分的文件名直接下载。","","#### 方式 2: Generic Package Registry",""]+[f"- [`{f}`](https://{r}/api/packages/{o}/generic/{p}/{t}/{f})" for f in sorted(glob.glob("*.tar.gz"))]+["","#### 方式 3: Debian Repository","","```bash","# Download GPG key",f"sudo curl https://{r}/api/packages/{o}/debian/repository.key -o /etc/apt/keyrings/gitea-{o}.asc","","# Add repository",f"echo \"deb [signed-by=/etc/apt/keyrings/gitea-{o}.asc] https://{r}/api/packages/{o}/debian stable main\" | sudo tee -a /etc/apt/sources.list.d/{o}.list","","# Update and install","sudo apt-get update","sudo apt-get install xxxigcc","```"];print(json.dumps({"tag_name":t,"name":f"Release {t}","body":"\n".join(b),"draft":False,"prerelease":False}))') # 创建 Release echo "" diff --git a/README.md b/README.md index 92897a0..e0eadd9 100644 --- a/README.md +++ b/README.md @@ -12,40 +12,20 @@ - 📦 **多种安装方式** - 提供 Debian 包和通用二进制包 - 🐧 **多发行版兼容** - 支持 Ubuntu、Debian 和 Alpine Linux - 🎛️ **集中化管理** - 通过 Web UI 集中管理多个挖矿节点 -- 🔄 **自动更新** - 通过 Debian 仓库轻松安装和更新 +- 🔄 **自动更新**:可通过 Debian 仓库安装(通用稳定版) ## 🚀 快速开始 -### 方式一:Debian/Ubuntu(推荐) - -#### Debian 12 (Bookworm) +### Debian/Ubuntu(推荐) ```bash -# 1. 下载并添加 GPG 密钥 -sudo curl https://gitea.bcde.io/api/packages/wangdefa/debian/repository.key \ - -o /etc/apt/keyrings/gitea-wangdefa.asc +# 下载 GPG 密钥 +sudo curl https://gitea.bcde.io/api/packages/wangdefa/debian/repository.key -o /etc/apt/keyrings/gitea-wangdefa.asc -# 2. 添加软件源 -echo "deb [signed-by=/etc/apt/keyrings/gitea-wangdefa.asc] https://gitea.bcde.io/api/packages/wangdefa/debian bookworm main" | \ - sudo tee -a /etc/apt/sources.list.d/wangdefa.list +# 添加仓库 +echo "deb [signed-by=/etc/apt/keyrings/gitea-wangdefa.asc] https://gitea.bcde.io/api/packages/wangdefa/debian stable main" | sudo tee -a /etc/apt/sources.list.d/wangdefa.list -# 3. 安装 -sudo apt-get update -sudo apt-get install xxxigcc -``` - -#### Debian 13 (Trixie) - -```bash -# 1. 下载并添加 GPG 密钥 -sudo curl https://gitea.bcde.io/api/packages/wangdefa/debian/repository.key \ - -o /etc/apt/keyrings/gitea-wangdefa.asc - -# 2. 添加软件源 -echo "deb [signed-by=/etc/apt/keyrings/gitea-wangdefa.asc] https://gitea.bcde.io/api/packages/wangdefa/debian trixie main" | \ - sudo tee -a /etc/apt/sources.list.d/wangdefa.list - -# 3. 安装 +# 更新并安装 sudo apt-get update sudo apt-get install xxxigcc ``` @@ -54,10 +34,10 @@ sudo apt-get install xxxigcc ```bash # 1. 下载对应架构的包 -wget https://gitea.bcde.io/releases/download/VERSION/xxxigcc-amd64-ubuntu-VERSION.tar.gz +wget https://gitea.bcde.io/releases/download/3.4.8-xg1/xxxigcc-amd64-ubuntu-3.4.8-xg1.tar.gz # 2. 解压 -tar -xzf xxxigcc-amd64-ubuntu-VERSION.tar.gz +tar -xzf xxxigcc-amd64-ubuntu-3.4.8-xg1.tar.gz cd xxxigcc # 3. 编辑配置文件 diff --git a/debian/postinst b/debian/postinst index 1423a0e..f4d2edd 100755 --- a/debian/postinst +++ b/debian/postinst @@ -56,27 +56,43 @@ fi echo "" echo "✅ XXXigCC installed successfully!" echo "" -echo "📋 Service Information:" +echo "📋 Configuration and startup:" echo "" -echo " xxxigcc-server - Control server with web UI (uses config_cc.json)" -echo " xxxigcc-daemon - Mining client daemon (uses config.json, auto-calls xxxigMiner)" +echo "1. Review and configure settings (optional):" +echo " For mining client:" +echo " sudo nano /etc/xxxigcc/config.json" +echo " For control server:" +echo " sudo nano /etc/xxxigcc/config_cc.json" echo "" -echo "To start the server (central control):" -echo " sudo systemctl enable xxxigcc-server.service" -echo " sudo systemctl start xxxigcc-server.service" +echo " Adjust pool settings, wallet address, CC server, and other options as needed." echo "" -echo "To start the daemon (mining client):" -echo " sudo systemctl enable xxxigcc-daemon.service" -echo " sudo systemctl start xxxigcc-daemon.service" +echo "2. Start services:" echo "" -echo "Configuration files:" -echo " /etc/xxxigcc/config.json - Daemon/Miner configuration" -echo " /etc/xxxigcc/config_cc.json - Server configuration" +echo " For mining client (daemon):" +echo " sudo systemctl enable xxxigcc-daemon.service" +echo " sudo systemctl start xxxigcc-daemon.service" echo "" -echo "Binaries location:" -echo " /opt/xxxigcc/xxxigServer - Control server" -echo " /opt/xxxigcc/xxxigDaemon - Client daemon (auto-calls xxxigMiner)" -echo " /opt/xxxigcc/xxxigMiner - Miner executable" +echo " For control server (optional, Web UI on port 3344):" +echo " sudo systemctl enable xxxigcc-server.service" +echo " sudo systemctl start xxxigcc-server.service" +echo "" +echo "3. Check status:" +echo " sudo systemctl status xxxigcc-daemon" +echo " sudo journalctl -u xxxigcc-daemon -f" +echo "" +echo "📁 Important paths:" +echo " Config files: /etc/xxxigcc/config.json (daemon)" +echo " /etc/xxxigcc/config_cc.json (server)" +echo " Log directory: /var/log/xxxigcc" +echo " Binaries: /opt/xxxigcc/xxxigServer (control server)" +echo " /opt/xxxigcc/xxxigDaemon (mining daemon)" +echo " /opt/xxxigcc/xxxigMiner (miner executable)" +echo "" +echo "💡 Tip: Your config files will NOT be overwritten during package upgrades." +echo "" +echo "For help:" +echo " /opt/xxxigcc/xxxigDaemon --help" +echo " /opt/xxxigcc/xxxigServer --help" echo "" exit 0 diff --git a/debian/postrm b/debian/postrm index c2979d6..3cf1093 100755 --- a/debian/postrm +++ b/debian/postrm @@ -3,28 +3,33 @@ set -e case "$1" in purge) - # Remove log directory - rm -rf /var/log/xxxigcc - - # Remove config directory - rm -rf /etc/xxxigcc - # Remove user and group if getent passwd xxxigcc >/dev/null; then - deluser --system xxxigcc 2>/dev/null || true + deluser --quiet xxxigcc || true fi if getent group xxxigcc >/dev/null; then - delgroup --system xxxigcc 2>/dev/null || true + delgroup --quiet xxxigcc || true fi + + # Remove data directories (only on purge) + rm -rf /var/log/xxxigcc + rm -rf /etc/xxxigcc ;; remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) - # Reload systemd - if [ -d /run/systemd/system ]; then - systemctl daemon-reload - fi + # Do nothing + ;; + + *) + echo "postrm called with unknown argument \`$1'" >&2 + exit 1 ;; esac -exit 0 +# Reload systemd +if [ -d /run/systemd/system ]; then + systemctl daemon-reload +fi + +exit 0 \ No newline at end of file diff --git a/debian/prerm b/debian/prerm index 8253998..fc851f3 100755 --- a/debian/prerm +++ b/debian/prerm @@ -4,11 +4,13 @@ set -e # Stop services before removal if [ -d /run/systemd/system ]; then for service in xxxigcc-server.service xxxigcc-daemon.service; do - if systemctl is-active "$service" >/dev/null 2>&1; then + if systemctl is-active --quiet "$service"; then + echo "Stopping $service..." systemctl stop "$service" fi - if systemctl is-enabled "$service" >/dev/null 2>&1; then + if systemctl is-enabled --quiet "$service"; then + echo "Disabling $service..." systemctl disable "$service" fi done diff --git a/script/install.deb.sh b/script/install.deb.sh index 28bb051..161f198 100755 --- a/script/install.deb.sh +++ b/script/install.deb.sh @@ -53,7 +53,7 @@ get_arch() { # 添加 APT 源并更新 add_apt_repository() { - echo "deb [trusted=yes] https://${GITEA_SERVER}/api/packages/${GITEA_OWNER}/debian bookworm main" \ + echo "deb [trusted=yes] https://${GITEA_SERVER}/api/packages/${GITEA_OWNER}/debian stable main" \ >/etc/apt/sources.list.d/xxxigcc.list apt-get update -qq }