feat: 添加 Linux ARM64 平台支持

## 新增功能

添加 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 <noreply@anthropic.com>
This commit is contained in:
coso
2025-12-28 00:25:31 +08:00
co-authored by Claude Opus 4.5
parent 422b93a417
commit 02bd6e5fc4
+34 -3
View File
@@ -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 首次安装