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_support、 eos 從支援資訊 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:NAME或 support: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 相容輸出。將 設定為 1或 0。請參閱從舊版外掛程式遷移。 1

輸出欄位參考

欄位 說明
Name 套件名稱
版本 已安裝或可用的版本
State installed、available 或 unavailable
目前狀態 目前的生命週期階段,例如 Supported或 End 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。

其他資源