需要哪些工具来创建Debian
小樊
36
2025-11-15 10:05:28
创建 Debian 软件包的工具清单与用途
一、核心工具与用途
- dpkg-dev:底层打包与解包工具,包含 dpkg-buildpackage、dpkg-source、dpkg-genchanges 等,用于从源码树生成 .deb 与 .changes 等产物。
- debhelper/dh-make:生成打包模板(debian/ 目录与基础规则),配合 dh 系列命令完成常见构建与安装流程。
- devscripts:提供便捷脚本(如 debuild、uupdate 等),简化常见维护与构建任务。
- build-essential:提供 gcc、make 等基础编译工具,满足大多数源码构建需求。
- fakeroot:以普通用户模拟 root 权限,安全构建包与安装文件到“假根”。
- gnupg:对 .dsc 与 .changes 进行 GPG 签名,便于上传与校验。
- lintian:对包进行规范性与常见错误检查,输出 W(警告)/ E(错误)。
- dput:将审核通过的包上传至仓库(如 mentors.debian.net 或团队仓库)。
二、常用辅助工具
- debc:列出 .deb 包内文件清单,便于核对安装内容。
- debdiff / interdiff:对比两个包或补丁的差异,适合回归检查与审查。
- gdebi:本地安装 .deb 并自动解析依赖,适合测试安装体验。
- dpkg-deb / ar:低层级查看或解压 .deb 内容,用于排查问题。
三、打包所需的关键文件
- debian/control:定义源码包与二进制包的元信息(如 Source、Package、Version、Architecture、Depends、Maintainer、Build-Depends 等)。
- debian/rules:构建规则(通常使用 dh 简化编写),定义 clean、build、binary 等目标。
- debian/changelog:版本变更记录,影响版本号与上传策略。
- debian/copyright:版权与许可证信息。
- debian/compat:指定 debhelper 兼容级别(新项目建议用 debhelper-compat (= 12) 并在 control 声明)。
- debian/install / debian/links:声明安装到目标系统的文件与符号链接。
- debian/preinst / postinst / prerm / postrm:安装前后、卸载前后的维护脚本,用于用户/组创建、服务启用、配置迁移等。
四、最小安装与常用命令示例
- 安装基础工具集(Debian/Ubuntu 系):
sudo apt update && sudo apt install build-essential devscripts debhelper dh-make gnupg lintian dput
- 生成模板与构建:
- 在源码根目录(目录名应为 包名-版本,如 mytool-1.0)执行:
dh_make --createorig
- 按需编辑 debian/control、debian/rules、debian/changelog 等文件。
- 完整构建并签名:
dpkg-buildpackage -rfakeroot -k<密钥ID>
- 快速本地测试构建:
fakeroot debian/rules binary
- 本地安装测试:
sudo apt install ./mytool_1.0-1_amd64.deb
- 检查与上传:
lintian -i …/mytool_1.0-1_amd64.changes
dput mentors …/mytool_1.0-1_amd64.changes