# 构建 deb package
## 准备
安装构建所需的依赖:
```bash
sudo apt-get update
sudo apt-get install build-essential debhelper devscripts fakeroot
```
## 构建
```bash
git clone https://github.com/RubyMetric/chsrc.git
cd chsrc
# 进入 deb 目录
cd pkg/deb
# 执行构建命令
./Makefile deb-make
```
### 调试构建
```bash
# 启用详细输出
DEB_BUILD_OPTIONS="nocheck" debuild -us -uc -b
# 检查构建日志
less ../chsrc_*.build
# 检查包内容
dpkg --contents ../chsrc_*.deb
# 或
dpkg-deb --contents ../chsrc_*.deb
```
### 交叉编译
为不同架构进行构建:
```bash
# For ARM64
CC=aarch64-linux-gnu-gcc dpkg-buildpackage -us -uc -b -aarm64
# For ARMv7 (armhf)
CC=arm-linux-gnueabihf-gcc dpkg-buildpackage -us -uc -b -aarmhf
```
### 安装
```bash
sudo dpkg -i ../chsrc_*.deb
sudo apt-get install -f # 修复依赖问题
```
### 测试安装情况
```bash
# 运行测试
bash ./deb-installation-test.sh
# 查看文档安装情况
man chsrc
# 查看 deb 包的 copyright
cat /usr/share/doc/chsrc/copyright
# 查看 deb 包 changelog
zless /usr/share/doc/chsrc/changelog.Debian.gz
```
### 清理构建产物
```bash
./Makefile deb-clean
```
## 卸载
```bash
sudo apt-get remove chsrc
```
包括删除配置在内的完全删除:
```bash
sudo apt-get purge chsrc
```
## 故障排查
常见问题:
1. **构建失败**: 检查 debian/control 中的依赖是否正确
2. **交叉编译失败**: 确认目标架构的工具链已正确安装
3. **安装测试失败**: 检查 postinst 脚本是否有错误