feat: 添加 Linux 构建脚本
新增文件: - build-linux-package.sh: Linux 编译和打包脚本 构建流程: 1. 清理旧的 dist 目录 2. 构建前端资源 (npm run build) 3. 编译 CLI 程序 (cargo build --release) 4. 复制必要文件 (impress_asr, config.toml, models/, dist/) 5. 打包成 tar.gz 输出文件: - dist/impress-asr-linux-x64-YYYYMMDD_HHMMSS.tar.gz - 文件大小:约 814KB 注意: - 当前环境缺少 GUI 依赖 (libgtk-3, libwebkit2gtk 等) - GUI 版本需要在有完整依赖的系统上编译 - CLI 版本可正常运行 使用说明: tar -xzf impress-asr-linux-x64-*.tar.gz cd impress-asr-linux-x64 ./impress_asr --help
This commit is contained in:
parent
b03ac2ab0b
commit
87ad8b4576
140
build-linux-package.sh
Executable file
140
build-linux-package.sh
Executable file
@ -0,0 +1,140 @@
|
||||
#!/bin/bash
|
||||
# Linux 编译并打包脚本
|
||||
# 编译 impress_asr_input_rust 项目并打包
|
||||
|
||||
set -e
|
||||
|
||||
PROJECT_DIR="/home/ubuntu/workspace/cherry-studio/enginneer/impress_asr_input_rust"
|
||||
cd "$PROJECT_DIR"
|
||||
|
||||
# 生成时间戳(精确到秒)
|
||||
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
|
||||
DIST_DIR="$PROJECT_DIR/dist/linux-x64"
|
||||
OUTPUT_TAR="$PROJECT_DIR/dist/impress-asr-linux-x64-${TIMESTAMP}.tar.gz"
|
||||
|
||||
echo "=============================================="
|
||||
echo " Impress ASR - Linux 构建打包脚本"
|
||||
echo " 时间:$(date '+%Y-%m-%d %H:%M:%S')"
|
||||
echo "=============================================="
|
||||
|
||||
# 清理旧的 dist 目录
|
||||
echo ""
|
||||
echo "[1/5] 清理旧的 dist 目录..."
|
||||
rm -rf "$DIST_DIR"
|
||||
mkdir -p "$DIST_DIR"
|
||||
|
||||
# 构建前端
|
||||
echo ""
|
||||
echo "[2/5] 构建前端..."
|
||||
cd "$PROJECT_DIR/web"
|
||||
npm run build
|
||||
cd "$PROJECT_DIR"
|
||||
|
||||
# 验证前端构建
|
||||
echo ""
|
||||
echo "前端构建结果:"
|
||||
ls -lh "$PROJECT_DIR/web/dist/"
|
||||
|
||||
# 编译 CLI 程序
|
||||
echo ""
|
||||
echo "[3/5] 编译 CLI 程序..."
|
||||
cargo build --release
|
||||
|
||||
# 复制必要文件
|
||||
echo ""
|
||||
echo "[4/5] 复制必要文件到 dist 目录..."
|
||||
cp "$PROJECT_DIR/target/release/impress_asr" "$DIST_DIR/"
|
||||
cp -r "$PROJECT_DIR/web/dist" "$DIST_DIR/"
|
||||
cp -r "$PROJECT_DIR/models" "$DIST_DIR/" 2>/dev/null || mkdir -p "$DIST_DIR/models"
|
||||
cp "$PROJECT_DIR/resources/configs/default.toml" "$DIST_DIR/config.toml" 2>/dev/null || true
|
||||
|
||||
# 创建 README.md
|
||||
cat > "$DIST_DIR/README.md" << 'README_EOF'
|
||||
# Impress ASR Input Rust - Linux 运行说明
|
||||
|
||||
## 🚀 快速启动
|
||||
|
||||
1. **解压文件**
|
||||
```bash
|
||||
tar -xzf impress-asr-linux-x64-*.tar.gz
|
||||
cd impress-asr-linux-x64
|
||||
```
|
||||
|
||||
2. **运行程序**
|
||||
```bash
|
||||
# CLI 版本
|
||||
./impress_asr --help
|
||||
|
||||
# 录音
|
||||
./impress_asr record
|
||||
|
||||
# 识别音频文件
|
||||
./impress_asr recognize -i audio.wav
|
||||
```
|
||||
|
||||
## 📦 文件清单
|
||||
|
||||
| 文件 | 说明 |
|
||||
|------|------|
|
||||
| `impress_asr` | CLI 命令行工具 |
|
||||
| `config.toml` | 配置文件(可选) |
|
||||
| `models/` | 模型文件目录 |
|
||||
| `dist/` | 前端资源目录 |
|
||||
|
||||
## 📋 系统要求
|
||||
|
||||
- **操作系统**:Linux x64 (glibc 2.28+)
|
||||
- **支持的系统**:Ubuntu 18.04+, Debian 10+, CentOS 8+, RHEL 8+
|
||||
- **可选依赖**:
|
||||
- `libasound2` - 音频支持
|
||||
- `libonnxruntime` - ONNX 模型推理
|
||||
|
||||
## ❓ 常见问题
|
||||
|
||||
### 错误:模型文件不存在
|
||||
**解决**:下载 ONNX 模型并放到 `models/` 目录。
|
||||
- SenseVoice Small: https://huggingface.co/FunAudioLLM/SenseVoiceSmall/resolve/main/model.onnx
|
||||
|
||||
### 错误:找不到 libasound.so
|
||||
**解决**:安装 ALSA 库
|
||||
```bash
|
||||
# Ubuntu/Debian
|
||||
sudo apt-get install libasound2
|
||||
|
||||
# CentOS/RHEL
|
||||
sudo yum install alsa-lib
|
||||
```
|
||||
|
||||
## 📝 获取帮助
|
||||
|
||||
```bash
|
||||
./impress_asr --help
|
||||
```
|
||||
|
||||
---
|
||||
**版本**: 0.1.0 | **构建时间**: 见文件名后缀
|
||||
README_EOF
|
||||
|
||||
echo "文件列表:"
|
||||
ls -lh "$DIST_DIR/"
|
||||
|
||||
# 打包成 tar.gz
|
||||
echo ""
|
||||
echo "[5/5] 打包成 tar.gz 文件..."
|
||||
cd "$DIST_DIR/.."
|
||||
tar -czf "$OUTPUT_TAR" linux-x64/
|
||||
|
||||
# 显示结果
|
||||
echo ""
|
||||
echo "=============================================="
|
||||
echo "构建打包完成!"
|
||||
echo "输出文件:$OUTPUT_TAR"
|
||||
echo "文件大小:$(ls -lh "$OUTPUT_TAR" | awk '{print $5}')"
|
||||
echo "=============================================="
|
||||
echo ""
|
||||
echo "Linux 运行所需文件清单:"
|
||||
echo " - impress_asr (CLI 工具)"
|
||||
echo " - config.toml (可选,配置文件)"
|
||||
echo " - models/ (模型文件目录)"
|
||||
echo " - dist/ (前端资源)"
|
||||
echo "=============================================="
|
||||
Loading…
Reference in New Issue
Block a user