温馨提示×

需要哪些工具来创建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

0