From 02bd6e5fc45a4a8ac7fe288276afc8d2915b6a00 Mon Sep 17 00:00:00 2001 From: coso Date: Sun, 28 Dec 2025 00:25:31 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=20Linux=20ARM64=20?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 新增功能 添加 Linux ARM64 (aarch64) 平台的构建支持,满足树莓派、ARM 服务器等设备需求。 ## 技术实现 ### 1. 构建矩阵扩展 - 添加 `aarch64-unknown-linux-gnu` target - 使用 Ubuntu 22.04 进行交叉编译 ### 2. 交叉编译工具链 - 安装 `gcc-aarch64-linux-gnu` 和 `g++-aarch64-linux-gnu` - 配置 ARM64 系统库: - libwebkit2gtk-4.1-dev:arm64 - libappindicator3-dev:arm64 - librsvg2-dev:arm64 - libssl-dev:arm64 - libgtk-3-dev:arm64 ### 3. 环境配置 - `PKG_CONFIG_ALLOW_CROSS=1`: 允许交叉编译 - `PKG_CONFIG_PATH`: 指向 ARM64 库路径 - `CARGO_TARGET_*_LINKER`: 配置链接器 - `CC_*` / `CXX_*`: 配置 C/C++ 编译器 ## 发布产物 新增以下文件: - `proxycast_*_arm64.deb` - Debian/Ubuntu ARM64 安装包 - `proxycast_*_arm64.AppImage` - 通用 Linux ARM64 可执行文件 ## 支持设备 - 树莓派 (Raspberry Pi 3/4/5) - ARM 服务器 (AWS Graviton, 华为鲲鹏等) - ARM 笔记本 (如 ARM Chromebook) - Apple Silicon Mac 运行 Linux (通过虚拟机或双系统) ## 测试建议 发布后建议在以下设备测试: 1. 树莓派 4 (Raspberry Pi OS) 2. Ubuntu 22.04 ARM64 虚拟机 3. AWS Graviton 实例 Closes #54 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- .github/workflows/release.yml | 37 ++++++++++++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0aa8d8a17..4f076e156 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -32,6 +32,9 @@ jobs: - platform: ubuntu-22.04 target: x86_64-unknown-linux-gnu name: Linux-x64 + - platform: ubuntu-22.04 + target: aarch64-unknown-linux-gnu + name: Linux-arm64 runs-on: ${{ matrix.platform }} @@ -45,12 +48,39 @@ jobs: node-version: '20' cache: 'npm' - - name: Install Linux dependencies - if: matrix.platform == 'ubuntu-22.04' + - name: Install Linux dependencies (x64) + if: matrix.platform == 'ubuntu-22.04' && matrix.target == 'x86_64-unknown-linux-gnu' run: | sudo apt-get update sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf + - name: Install Linux ARM64 cross-compilation dependencies + if: matrix.platform == 'ubuntu-22.04' && matrix.target == 'aarch64-unknown-linux-gnu' + run: | + sudo apt-get update + sudo apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu + + # 添加 ARM64 架构支持 + sudo dpkg --add-architecture arm64 + sudo apt-get update + + # 安装 ARM64 系统库 + sudo apt-get install -y \ + libwebkit2gtk-4.1-dev:arm64 \ + libappindicator3-dev:arm64 \ + librsvg2-dev:arm64 \ + libssl-dev:arm64 \ + libgtk-3-dev:arm64 + + # 设置 PKG_CONFIG 环境变量 + echo "PKG_CONFIG_ALLOW_CROSS=1" >> $GITHUB_ENV + echo "PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig" >> $GITHUB_ENV + + # 设置 Cargo 环境变量 + echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc" >> $GITHUB_ENV + echo "CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc" >> $GITHUB_ENV + echo "CXX_aarch64_unknown_linux_gnu=aarch64-linux-gnu-g++" >> $GITHUB_ENV + - name: Setup Rust uses: dtolnay/rust-toolchain@stable with: @@ -87,7 +117,8 @@ jobs: - **macOS (Apple Silicon)**: `proxycast_*_aarch64.dmg` - **macOS (Intel)**: `proxycast_*_x64.dmg` - **Windows (64-bit)**: `proxycast_*_x64-setup.exe` - - **Linux (64-bit)**: `proxycast_*_amd64.deb` / `proxycast_*_amd64.AppImage` + - **Linux x64**: `proxycast_*_amd64.deb` / `proxycast_*_amd64.AppImage` + - **Linux ARM64**: `proxycast_*_arm64.deb` / `proxycast_*_arm64.AppImage` ### macOS 首次安装