View a markdown version of this page

使用 dnf supportinfo 外掛程式 - Amazon Linux 2023

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 dnf supportinfo 外掛程式

dnf-plugin-support-info 套件提供 AL2023 的 dnf supportinfo命令。使用此命令查詢套件的生命週期和支援資訊:了解目前是否支援套件、接收修補程式的嚴重性等級,以及支援狀態變更的時間。

如需所有套件支援陳述式的摘要檢視,請參閱 AL2023 版本備註中的 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舊版模式中的 除外)

開始使用

  1. 安裝 外掛程式。

    sudo dnf install dnf-plugin-support-info
  2. 查詢套件以驗證安裝。

    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 --pkg PACKAGE [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 --show FILTER [FILTER ...]

篩選條件類型

Category 來源
狀態篩選條件 (固定) installed, available, unavailable, all 內建於 外掛程式
支援層級篩選條件 (動態) 各有不同。例如,full_supporteos 從支援資訊 XML 中的<support_level>項目載入
注意

支援層級篩選條件是動態的。它們直接來自作業系統廠商定義的支援資訊 XML 資料。可用的值取決於 AL2023 目前定義的值。執行 --list-filters以查看目前的一組有效篩選條件值。如需如何宣告這些層級的資訊,請參閱 SupportInfo XML 結構

篩選條件邏輯

  • 多個狀態篩選條件與 OR 結合: --show installed available符合已安裝的 OR 可用套件。

  • 多個支援層級篩選條件與 OR 結合: --show full_support eos符合 full_support OR eos支援層級的套件。

  • 當您結合這兩種類型時,它們會與 AND 結合: --show installed eos符合在eos支援層級安裝的 AND 套件。

注意

如果篩選條件名稱同時存在於狀態和支援層級類別中,則外掛程式會與兩者相符。使用字首語法來解構: 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

輸出是具有<package_support>根目錄的 XML 文件,每個生命週期包含一個<statement>元素,每個元素都有其階段、開始日期和支援層級詳細資訊。如需完整的結構描述參考,請參閱 SupportInfo XML 結構

管理快取

外掛程式會在本機快取支援資訊 XML,以減少網路請求。

快取行為

當快取過期時:

  1. 外掛程式會檢查遠端檔案是否已變更 (使用 HTTP ETag)。

  2. 如果未變更,它會擴展快取而不重新下載。

  3. 如果變更,它會下載更新的 檔案。

  4. 在發生網路錯誤時,如果快取檔案存在,它會回到快取檔案。

同步快取

下載並快取最新的支援資訊資料:

dnf supportinfo --sync

將此用於需要up-to-date支援資料的自動化和 Cron 任務,而無需執行完整查詢。

清除快取

dnf supportinfo --clean-cache

非根用量

所有命令都會在沒有根權限的情況下運作。做為根執行時,快取會存放在 /var/cache/dnf/support-info/。以非根使用者身分執行時,快取會移至 /var/tmp/dnf-username-*/support-info/。這遵循每個使用者臨時目錄的 DNF 標準慣例。

注意

如果您啟用舊版模式,請執行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 相容輸出。將 設定為 10。請參閱從舊版外掛程式遷移 1

輸出欄位參考

欄位 說明
Name 套件名稱
版本 已安裝或可用的版本
State installedavailableunavailable
目前狀態 目前的生命週期階段,例如 SupportedEnd of Life
修補程式優先順序 支援層級名稱
支援層級描述 支援層級的人類可讀描述
涵蓋嚴重性 接收修補程式的安全嚴重性等級
Origin 提供套件的儲存庫
支援時間軸 具有日期的生命週期階段的計時清單
套件備註 其他內容,例如上游 EOL 日期

結構描述

支援資訊資料格式由 XSD 結構描述定義。使用此結構描述來驗證直接使用支援資訊 XML 的自訂工具:

https://cdn.amazonlinux.com/al2023/core/supportinfo-1.0.xsd

從舊版外掛程式遷移

如果您先前使用舊版的 dnf-plugin-support-info套件,新的 v2 外掛程式legacy = 1預設會隨附 ,以維持回溯相容性。在未來的 AL2023 每季版本中,預設的 legacy = 0和 輸出會切換為此頁面中記錄的 v2 格式。

如果您有可剖析外掛程式輸出或直接讀取舊版 XML 檔案的指令碼或工具,請參閱 從 dnf-plugin-support-info v1 遷移至 v2 以取得差異的完整清單、之前/之後的範例,以及step-by-step遷移檢查清單。

若要在轉換後保留舊版行為,請在 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

其他資源