本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 dnf 支持信息 插件
该dnf-plugin-support-info软件包提供了 AL2023 的dnf supportinfo命令。使用此命令查询软件包的生命周期和支持信息:了解软件包当前是否受支持、收到补丁的严重性级别以及支持状态何时发生变化。
有关所有软件包支持声明的摘要视图,请参阅 AL2023 发行说明中的 AL2023 支持声明。
重要
v2 插件附带legacy = 1/etc/dnf/plugins/supportinfo.conf了。在此模式下,输出使用 v1 字段名称和格式。在未来的 AL2023 季度版本中,默认值更改为legacy = 0,切换到本页上记录的 v2 输出格式。要立即开始使用 v2 输出,请在您的配置legacy = 0中进行设置。有关哪些更改的详细信息,请参阅迁移来源 dnf-plugin-support-info v1 到 v2。
先决条件
-
AL2023 实例
-
该dnf-plugin-support-info软件包(可从默认 AL2023 存储库中获得)
-
无需根权限(传统模式除外)
--sync
开始使用
-
安装 插件。
sudo dnf install dnf-plugin-support-info -
查询软件包以验证安装。
dnf supportinfo --pkg glibc输出显示了该软件包的支持状态和时间表:
Name : glibc Version : 2.34-231.amzn2023.0.4 State : installed Current Status : Supported Patch Priority : Full Support Support Level Description : Full security and bug fix support for all severities Covered Severities : Low, Medium, Important, Critical Origin : Amazon Linux 2023 Core Support Timeline : from 2023-03-15 : supported : from 2029-06-30 : unsupported
查询包
传递--pkg一个或多个软件包名称以显示其支持信息。
dnf supportinfo --pkgPACKAGE[PACKAGE...]
查询特定包裹
以下dnf supportinfo示例查询生命周期已到期的软件包:
dnf supportinfo --pkg php8.1
Name : php8.1 Version : 8.1.34-1.amzn2023.0.1 State : available Current Status : End of Life Patch Priority : End of Support Support Level Description : End of support - no further updates Origin : Amazon Linux 2023 Core Support Timeline : from 2023-03-15 : supported : from 2025-12-31 : unsupported Package Note : Upstream end-of-life for PHP 8.1 (php8.1) is 2025-12-31
查询多个包裹
dnf supportinfo --pkg glibc bash openssl
过滤器套餐
该--show标志按州、支持级别或两者都筛选软件包。
dnf supportinfo --showFILTER[FILTER...]
过滤器类型
| 类别 | 值 | 来源 |
|---|---|---|
| 状态过滤器(固定) | installed, available, unavailable, all |
内置于插件中 |
| 支持级别过滤器(动态) | 可变。例如,full_support,eos |
从支持信息 XML 中的<support_level>条目加载 |
注意
支持级别过滤器是动态的。它们直接来自操作系统供应商定义的支持信息 XML 数据。可用值取决于 AL2023 当前的定义。运行--list-filters以查看当前的有效过滤器值集。有关如何声明这些级别的信息,请参阅SupportInfo XML 结构。
过滤器逻辑
-
多个状态过滤器与 OR 相结合:
--show installed available匹配已安装或可用的软件包。 -
多个支持级别过滤器与 OR:
--show full_support eos匹配手术eos支持级别的full_support软件包。 -
当您将两种类型组合在一起时,它们与 AND: 组合使用时会
--show installed eos匹配已安装且处于eos支持级别的软件包。
注意
如果过滤器名称同时存在于州和支持级别类别中,则插件会同时匹配这两个类别。使用前缀语法来消除歧义:state:或。NAMEsupport:NAME
列出可用过滤器
运行--list-filters以查看按类别分组的所有有效筛选值:
dnf supportinfo --list-filters
输出示例:
State filters: all - All packages (installed, available, and unavailable) available - Packages available in repositories but not installed installed - Packages currently installed on the system unavailable - Packages in support info but not in any repository Support level filters: eos - End of support - no further updates full_support - Full security and bug fix support for all severities
筛选已安装的软件包
dnf supportinfo --show installed
输出在表格中列出了每个软件包及其支持级别和当前状态:
Package Version State Support Level Current Status Until (Next Phase) Note redis6 6.2.20-2.amzn2023.0.1 installed End of Support End of Life Upstream end-of-life for Redis 6 (redis6) is 2026-01-31 bash 5.2.15-1.amzn2023.0.2 installed Full Support Supported 2029-06-30 (unsupported) glibc 2.34-231.amzn2023.0.1 installed Full Support Supported 2029-06-30 (unsupported) ...
在特定支持级别筛选已安装的软件包
dnf supportinfo --show installed eos
使用前缀语法消除歧义
dnf supportinfo --show state:installed support:full_support
结构化输出
用于脚本编写和自动化,--showjson并--showxml生成机器可读的输出。
获取 JSON 输出
dnf supportinfo --pkg nodejs20 --showjson
输出包含该软件包的当前阶段、起源和完整的时间表以及支持级别的详细信息:
{ "name": "nodejs20", "version": "20.20.2-1.amzn2023.0.2", "state": "available", "current_phase": "unsupported", "origin": "Amazon Linux 2023 Core", "phases": [ { "name": "supported", "start_date": "2023-10-24", "patch_priority": "Full Support", "support_level_description": "Full security and bug fix support for all severities", "covered_severities": "Low, Medium, Important, Critical" }, { "name": "unsupported", "start_date": "2026-04-30", "patch_priority": "End of Support", "support_level_description": "End of support - no further updates" } ], "note": "Upstream end-of-life for Node.js 20 (nodejs20) is 2026-04-30" }
获取 XML 输出
dnf supportinfo --pkg nodejs20 --showxml
输出是一个 XML 文档,其<package_support>根目录包含每个生命周期的一个元素,每个<statement>元素都有其阶段、开始日期和支持级别的详细信息。有关完整的架构参考,请参阅SupportInfo XML 结构。
管理缓存
该插件在本地缓存支持信息 XML 以减少网络请求。
缓存行为
当缓存过期时:
-
该插件检查远程文件是否已更改(使用 HTTP ETag)。
-
如果不变,它会在不重新下载的情况下扩展缓存。
-
如果更改,它将下载更新的文件。
-
出现网络错误时,它会回退到缓存的文件(如果存在)。
同步缓存
下载并缓存最新的支持信息数据:
dnf supportinfo --sync
将其用于需要最新支持数据而无需运行完整查询的自动化和 cron 作业。
清除缓存
dnf supportinfo --clean-cache
Non-root 用法
所有命令都无需root权限即可运行。以 root 身份运行时,缓存存储在/var/cache/dnf/support-info/。当以非 root 用户身份运行时,缓存将变为。/var/tmp/dnf-这遵循了 DNF 针对每用户临时目录的标准惯例。username-*/support-info/
注意
如果您启用旧模式,请运行sudo dnf supportinfo --sync一次以创建旧版文件。之后,非根查询可以正常工作。
配置引用
该插件从中读取配置/etc/dnf/plugins/supportinfo.conf。以下示例显示了禁用传统模式时的推荐配置:
[main] # Required: URL to support info XML (DNF variables like $awsregion are resolved) baseurl = https://cdn.amazonlinux.com/al2023/core/AL2023-supportinfo-1.0.xml # Optional: XSD schema for validation templateurl = https://cdn.amazonlinux.com/al2023/core/supportinfo-1.0.xsd # Optional: Cache duration in seconds (default: 1800 = 30 minutes) metadata_expire = 1800 # Legacy mode (default: 1). Set to 0 to use v2 format. legacy = 0
| 选项 | 描述 | 默认 |
|---|---|---|
baseurl |
支持信息 XML 文件的 URL。支持 DNF 变量,例如. $awsregion |
必填 |
templateurl |
用于验证的 XSD 架构的 URL。 | 无 |
metadata_expire |
缓存持续时间(以秒为单位)。无限-1使用,0随时检查。 |
1800 |
legacy |
启用与 v1 兼容的输出。设置为1或0。请参阅从旧版插件迁移。 |
1 |
输出字段参考
| 字段 | 说明 |
|---|---|
| Name | 软件包名称 |
| 版本 | 已安装或可用版本 |
| 州 | installed、available 或 unavailable |
| 当前状态 | 当前生命周期阶段,例如Supported或 End of Life |
| 补丁优先级 | 支持级别名称 |
| 支持级别描述 | Human-readable 支撑位的描述 |
| 承保的严重程度 | 接收补丁的安全严重性级别 |
| Origin | 提供软件包的存储库 |
| 支持时间表 | 按时间顺序排列的生命周期阶段列表及日期 |
| 包装备注 | 其他背景,例如上游 EOL 日期 |
架构
支持信息数据格式由 XSD 架构定义。使用此架构来验证直接使用支持信息 XML 的自定义工具:
https://cdn.amazonlinux.com/al2023/core/supportinfo-1.0.xsd
从旧版插件迁移
如果您之前使用了该dnf-plugin-support-info软件包的早期版本,则legacy = 1默认情况下会附带新的 v2 插件以保持向后兼容性。在未来的 AL2023 季度版本中,默认更改legacy = 0和输出将切换到本页上记录的 v2 格式。
如果您有解析插件输出或直接读取旧版 XML 文件的脚本或工具,迁移来源 dnf-plugin-support-info v1 到 v2请参阅,了解差异的完整列表、 before/after 示例和分步迁移清单。
要在过渡后保持传统行为,请legacy = 1进行设置/etc/dnf/plugins/supportinfo.conf。这是一项临时措施。传统模式需要根权限--sync,将在未来的版本中删除。
问题排查
过时的缓存数据
症状:查询结果显示过时的支持信息。
分辨率:手动同步缓存:
dnf supportinfo --sync
如果问题仍然存在,请清除并重新同步:
dnf supportinfo --clean-cache dnf supportinfo --sync
未找到旧文件
症状:脚本读取/usr/lib/python*/site-packages/dnf-plugins/support_info.xml失败并显示 “文件未找到”。
解决方法:只有当您设置legacy = 1并运行--sync至少一次时,该插件才会创建旧文件:
sudo dnf supportinfo --sync
如果legacy = 0,该文件将不再维护。将您的脚本迁移到使用--showjson或改为--showxml输出。有关迁移步骤,请参阅迁移来源 dnf-plugin-support-info v1 到 v2。