

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# SupportInfo XML 结构
<a name="dnf-supportinfo-xml-structure"></a>

本页记录了用于定义 Linux 发行版的软件包支持生命周期、时间表和分类的 v1.0 XML 架构。该架构独立于 DNF，不特定于任何单一发行版。你可以直接从任何工具上使用它。该`dnf supportinfo`插件就是这样一个消费者。
+ **架构定义 (XSD)：**`https://cdn.amazonlinux.com/al2023/core/supportinfo-1.0.xsd`
+ **支持数据 (XML)：**`https://cdn.amazonlinux.com/al2023/core/AL2023-supportinfo-1.0.xml`

要直接解析此 XML，请使用实现本页描述的架构的开源[amazon-linux-supportinfo](https://github.com/amazonlinux/amazon-linux-supportinfo)库，而不是编写自定义解析器。

**Topics**
+ [插件如何使用此文件](#dnf-supportinfo-xml-how-plugin-uses)
+ [完整的最小示例](#dnf-supportinfo-xml-minimal-example)
+ [元素参考](#dnf-supportinfo-xml-element-reference)
+ [参照完整性](#dnf-supportinfo-xml-referential-integrity)

## 插件如何使用此文件
<a name="dnf-supportinfo-xml-how-plugin-uses"></a>

该插件从该文件中报告：
+ 软件包处于哪个支持级别（这些值填充`--show`筛选选项）
+ 生命周期阶段发生变化时（显示在`--pkg`输出和时间轴中）
+ 每个支持级别的补丁优先级和严重性覆盖范围
+ 包裹来自哪里（原产地和分类）

## 完整的最小示例
<a name="dnf-supportinfo-xml-minimal-example"></a>

此示例显示了包含所有必需部分和一个包的最低结构：

```
<package_support schema_version="1.0" current_as="2025-08-21T22:41:55.575196">
  <lifecycles>
    <lifecycle name="default_lc"
               display_name="AL2023 Standard Lifecycle"
               description="Standard support lifecycle for Amazon Linux 2023 packages">
      <phase name="full_support"
             support_level="default"
             start_milestone="AL2023_GA"
             display_name="Full Support"/>
      <phase name="end_of_support"
             support_level="eos"
             start_milestone="AL2023_EOS"
             display_name="End of Support"/>
    </lifecycle>
  </lifecycles>

  <support_milestones>
    <milestone name="AL2023_GA" date="2023-03-15"
               display_name="AL2023 General Availability"
               description="Amazon Linux 2023 general availability date"/>
    <milestone name="AL2023_EOS" date="2029-06-30"
               display_name="AL2023 End of Support"
               description="End of all support for Amazon Linux 2023"/>
  </support_milestones>

  <support_levels>
    <support_level name="default"
                   severities="Low,Medium,Important,Critical"
                   description="Full security and bug fix support for all severities"
                   display_name="Default Support" />
    <support_level name="eos"
                   severities=""
                   description="End of support - no further updates"
                   display_name="End of Support" />
  </support_levels>

  <packages>
    <package name="curl" lifecycle="default_lc" origin="al2023_core" package_class="default"/>
  </packages>

  <package_classes>
    <package_class name="default">
      <summary>Default class for Amazon Linux packages</summary>
      <text></text>
    </package_class>
  </package_classes>

  <package_origins>
    <package_origin name="al2023_core"
                    repo_id="amazonlinux"
                    dist="amzn2023"
                    vendor="amazonlinux"
                    display_name="Amazon Linux 2023 Core"
                    description="Core Amazon Linux 2023 repository" />
  </package_origins>

  <notes>
    <note name="eol_redis6">Upstream end-of-life for Redis 6 (redis6) is 2025-08-31</note>
  </notes>
</package_support>
```

## 元素参考
<a name="dnf-supportinfo-xml-element-reference"></a>

### `package_support`（根元素）
<a name="dnf-supportinfo-xml-package-support"></a>

包含所有支持元数据的根元素。


| 属性 | 必需 | 描述 | 
| --- | --- | --- | 
| schema\_version | 是 | 架构格式版本（当前1.0） | 
| current\_as | 是 | 上次生成支持数据时的 ISO 时间戳 | 

```
<package_support schema_version="1.0" current_as="2025-08-21T22:41:55.575196">
```

`current_as`时间戳显示在输出中，以表示数据的新鲜度。

### `生命周期`
<a name="dnf-supportinfo-xml-lifecycle"></a>

定义软件包随时间推移所经历的阶段顺序。


| 属性 | 必需 | 描述 | 
| --- | --- | --- | 
| name | 是 | 引用的唯一标识符 package@lifecycle | 
| note | 否 | 参考文献 a note@name 以获取更多上下文 | 
| display\_name | 否 | Customer-facing 标签 | 
| description | 否 | Human-readable 描述 | 

```
<lifecycle name="redis6_lc" note="eol_redis6"
           display_name="Redis 6 Lifecycle"
           description="Support lifecycle for Redis 6 packages">
  <phase .../>
</lifecycle>
```

该插件按顺序浏览各个阶段，找到当前处于活动状态的阶段，并在输出中报告该阶段的支持级别。

### `phase`
<a name="dnf-supportinfo-xml-phase"></a>

定义生命周期中的一个阶段。每个阶段一直持续到下一阶段开始（如果是最后一个阶段，则无限期）。


| 属性 | 必需 | 描述 | 
| --- | --- | --- | 
| name | 是 | 阶段标识符（在其生命周期内是唯一的） | 
| support\_level | 是 | 参考文献 a support\_level@name | 
| start\_date | 有条件 | 固定 ISO 日期 (YYYY-MM-DD)。用这个或  start\_milestone | 
| start\_milestone | 有条件 | 参考文献 amilestone@name. 用这个或  start\_date | 
| display\_name | 否 | Customer-facing 标签 | 

**注意**  
请只指定`start_date`或中的一个`start_milestone`，而不是两者。

```
<phase name="limited_support"
       support_level="limited"
       start_milestone="AL2023_6months"
       display_name="Limited Support"/>
```

每个阶段从开始日期起一直处于活动状态，直到下一阶段开始。生命周期的最后阶段将无限期地保持活动状态。

### `里程碑`
<a name="dnf-supportinfo-xml-milestone"></a>

定义生命周期阶段参考的可重复使用的日期标记。


| 属性 | 必需 | 描述 | 
| --- | --- | --- | 
| name | 是 | 引用的唯一标识符 phase@start\_milestone | 
| date | 是 | ISO 日期 (YYYY-MM-DD) | 
| display\_name | 否 | Customer-facing 标签 | 
| description | 否 | Human-readable 描述 | 

```
<milestone name="AL2023_GA" date="2023-03-15"
           display_name="AL2023 General Availability"
           description="Amazon Linux 2023 general availability date"/>
```

里程碑让各阶段共享日期。当里程碑日期发生变化时，引用该里程碑日期的每个阶段都会自动更新。

### `支持级别`
<a name="dnf-supportinfo-xml-support-level"></a>

定义支持等级及其涵盖的严重程度。每个都`name`成为有效的`--show`过滤器值。


| 属性 | 必需 | 描述 | 
| --- | --- | --- | 
| name | 是 | 唯一标识符。用作--show筛选值 | 
| severities | 是 | Comma-separated 涵盖的严重性级别（空字符串 = 没有补丁） | 
| description | 是 | Human-readable --list-filters输出中显示的描述 | 
| display\_name | 否 | Customer-facing 标签 | 

```
<support_level name="limited"
               severities="Important,Critical"
               description="Security fixes for Important and Critical severities only"
               display_name="Limited Support" />
```

正在运行`dnf supportinfo --show limited`列出当前处于此支持级别的所有软件包。该`--list-filters`命令显示每个级别的`name`和`description`。

### `程序包`
<a name="dnf-supportinfo-xml-package"></a>

将 RPM 包名称映射到其生命周期、来源和类。


| 属性 | 必需 | 描述 | 
| --- | --- | --- | 
| name | 是 | RPM 包名称 | 
| lifecycle | 是 | 参考文献 a lifecycle@name | 
| origin | 是 | 参考文献 a package\_origin@name | 
| package\_class | 否 | 参考文献 a package\_class@name | 

```
<package name="curl" lifecycle="default_lc" origin="al2023_core" package_class="default"/>
```

**注意**  
一个包可以多次以不同的`origin`值出现（例如，同一个包在核心和 SPAL 存储库中）。`name`\+ 的组合`origin`必须是唯一的。

每个已安装的 RPM 都将与此列表进行匹配，以确定其生命周期和当前支持状态。

### `包级别`
<a name="dnf-supportinfo-xml-package-class"></a>

按包在系统中的角色对软件包进行分类。类名和摘要显示在插件输出中。


| Attribute/Element | 必需 | 描述 | 
| --- | --- | --- | 
| @name | 是 | 引用的唯一标识符 package@package\_class | 
| summary（孩子） | 是 | 类别的简短描述 | 
| text（孩子） | 是 | 扩展描述。该元素必须存在但可能为空 | 

```
<package_class name="os_dependency">
  <summary>Packages supported only as dependencies of the operating system</summary>
  <text></text>
</package_class>
```

类名出现在输出中，以指示软件包在系统中的作用。

### `package_origin`
<a name="dnf-supportinfo-xml-package-origin"></a>

标识包的存储库来源。该`origin`值出现在`dnf supportinfo --pkg`输出中。


| 属性 | 必需 | 描述 | 
| --- | --- | --- | 
| name | 是 | 引用的唯一标识符 package@origin | 
| repo\_id | 是 | DNF 存储库 ID | 
| dist | 是 | 分发标识符 | 
| vendor | 是 | 包裹供应商 | 
| signing\_key | 否 | GPG 签名密钥标识符 | 
| display\_name | 否 | Customer-facing 标签 | 
| description | 否 | Human-readable 描述 | 

```
<package_origin name="al2023_core"
                repo_id="amazonlinux"
                dist="amzn2023"
                vendor="amazonlinux"
                display_name="Amazon Linux 2023 Core"
                description="Core Amazon Linux 2023 repository" />
```

在`--pkg`输出中`display_name`显示为 “Origin” 字段。

### `note`
<a name="dnf-supportinfo-xml-note"></a>

提供自由格式的文本，生命周期可以参考这些文本以获取更多上下文。


| 属性 | 必需 | 描述 | 
| --- | --- | --- | 
| name | 是 | 引用的唯一标识符 lifecycle@note | 

元素的文本内容包含注释消息。

```
<note name="eol_redis6">Upstream end-of-life for Redis 6 (redis6) is 2025-08-31</note>
```

当包的生命周期引用注释时，注释文本在`--pkg`输出中显示为 “包注释”。

## 参照完整性
<a name="dnf-supportinfo-xml-referential-integrity"></a>

该架构通过`name`引用将元素链接在一起。每个源属性都必须与`name`现有目标元素相匹配：


| 源属性 | 参考 | 
| --- | --- | 
| package@lifecycle | lifecycle@name | 
| package@origin | package\_origin@name | 
| package@package\_class | package\_class@name | 
| phase@support\_level | support\_level@name | 
| phase@start\_milestone | milestone@name | 
| lifecycle@note | note@name | 

此外，`package@name`和的组合在所有`package`元素中`package@origin`必须是唯一的。