本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 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舊版模式中的 除外)
開始使用
-
安裝 外掛程式。
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...]
篩選條件類型
| 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_supportOReos支援層級的套件。 -
當您結合這兩種類型時,它們會與 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,以減少網路請求。
快取行為
當快取過期時:
-
外掛程式會檢查遠端檔案是否已變更 (使用 HTTP ETag)。
-
如果未變更,它會擴展快取而不重新下載。
-
如果變更,它會下載更新的 檔案。
-
在發生網路錯誤時,如果快取檔案存在,它會回到快取檔案。
同步快取
下載並快取最新的支援資訊資料:
dnf supportinfo --sync
將此用於需要up-to-date支援資料的自動化和 Cron 任務,而無需執行完整查詢。
清除快取
dnf supportinfo --clean-cache
非根用量
所有命令都會在沒有根權限的情況下運作。做為根執行時,快取會存放在 /var/cache/dnf/support-info/。以非根使用者身分執行時,快取會移至 /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 | 套件名稱 |
| 版本 | 已安裝或可用的版本 |
| 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。