温馨提示×

Debian消息格式有何要求

小樊
37
2025-12-26 02:04:40
栏目: 智能运维

Debian消息格式规范

一、debian/changelog 的书写规范

  • 首行格式:package (version) distribution(s); urgency=urgency
    • 字段含义:
      • package:软件包名
      • version:上游版本-修订号
      • distribution(s):目标发行版(如 unstable、stable、testing 等)
      • urgency:紧急程度(常见值:low、medium、high、emergency)
  • 变更条目
    • 以星号开头的多行列表:每行描述一项变更;条目之间可用空行分隔,空行会被 dpkg-parsechangelog 保留在输出中。
  • 维护者与日期分隔
    • 以单独一行“–”开始,后跟维护者姓名与邮箱,两者之间用两个空格分隔;随后是日期行。
  • 日期格式
    • 推荐使用 RFC 2822 格式,例如:Wed, 27 Jan 2010 00:00:00 +0000(时区建议用 +0000 或本地偏移)。
  • 常见约定
    • 每行条目尽量简短、信息明确;必要时在行尾使用闭合标签如 Closes: #nnnnnn 关联缺陷报告。

二、完整示例

gst-plugins-base (1.14.4-2) unstable; urgency=high

  * debian/patches/0001-gstrtspconnection-Security-loophole-making-heap-over.patch:
    Add upstream patch for CVE-2019-9928 (Closes: #927978).

 -- Wireshark Self-made package <wireshark@example.com>  Wed, 27 Jan 2010 00:00:00 +0000
  • 要点:首行包含包名、版本、发行版与 urgency;条目以“*”列出;维护者与邮箱之间有两个空格;日期采用 RFC 2822 格式。

三、工具与校验

  • 解析与校验
    • 使用 dpkg-parsechangelog 读取并校验 changelog 的版本与发布信息;变更条目之间的空行会作为条目分隔被保留在输出中,便于工具进一步处理。
  • 邮件与外发
    • 若通过程序(如 reportbug、bts)发送邮件,需确保系统具备可用的 MTA(如 exim4、postfix),或配置 msmtp 作为 smarthost;现代邮件投递通常经由端口 587 并使用 SMTP 认证与 TLS,同时需关注 DKIM、SPF、DMARC 等反垃圾策略以避免被拒收。

四、若指系统日志消息格式

  • 说明
    • 若问题指的是系统日志(syslog/rsyslog)的消息格式,可通过 /etc/rsyslog.conf 或 /etc/rsyslog.d/*.conf 定义模板来自定义输出格式,例如:
      $template CustomFormat,"%timegenerated% %hostname% %syslogtag% %msg%\n"
      *.* /var/log/custom.log;CustomFormat
      
    • 修改后重启服务:sudo systemctl restart rsyslog。上述占位符(如 %timegenerated%、%hostname%、%syslogtag%、%msg%)可按需组合。

0