比較 AL2 與 AL2023 - Amazon Linux 2023

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

比較 AL2 與 AL2023

下列主題說明 AL2 與 AL2023 之間的主要差異。

新增、升級和移除的套件

AL2023 包含數千個可供使用的軟體套件。如需 AL2023 中新增、升級或移除的所有套件完整清單 (與舊版 Amazon Linux 相比),請參閱 AL2023 中的 Package 件變更

要請求在 AL2023 中添加或更改軟件包,請在亞馬遜-linux-2023 軟件庫中提出一個問題。 GitHub

支援各個版本

對於 AL2023,我們提供五年支援。

如需詳細資訊,請參閱 發行節奏

命名和版本控制變更

AL2023 支援 AL2 支援平台識別的相同機制。AL2023 還導入用於平台識別的新檔案。

如需詳細資訊,請參閱 命名和版本控制

最佳化

AL2023 可最佳化開機時間,以縮短從執行個體啟動到執行客戶工作負載的時間。這些最佳化涵蓋 Amazon EC2 執行個體核心組態、cloud-init 組態,以及作業系統套件內建的功能,例如 kmodsystemd

如需關於最佳化的詳細資訊,請參閱 效能與操作最佳化

Python 2.7 已替換為 Python 3

AL2 為 Python 2.7 提供支援和安全修補直到 2025 年 6 月為止,這包含在我們對 AL2 核心套件的長期支援 (LTS) 承諾中。這種支持超出了 2020 年一月的 Python 2.7 end-of-life 的上游 Python 社區聲明。

AL2 使用的yum軟件包管理器,它有一個硬依賴於 Python 2.7。在 AL2023 中,dnf 套件管理器已遷移到 Python 3,不再需要 Python 2.7。AL2023 已經完全轉移到 Python 3。

注意

AL2023 已移除 Python 2.7,任何需要 Python 的作業系統組件都編寫為配合 Python 3 運作。若要繼續使用由 Amazon Linux 提供並支援的 Python 版本,請將 Python 2 程式碼轉換為 Python 3。

如需有關 Amazon Linux 的 Python 詳細資訊,請參閱 AL2023 中的 Python

安全性更新

SELinux

預設情況下,適用於 AL2023 的 Security Enhanced Linux (SELinux) 是 enabled 且會設為 permissive 模式。在 permissive 模式中,會記錄權限遭拒的情形,但不會強制執行。

SELinux 是 Amazon Linux 核心的安全功能,在 AL2 是 disabled。SELinux 是核心功能和公用程式的集合,為核心的主要子系統提供強制存取控制 (MAC) 架構。

如需詳細資訊,請參閱 設定 AL2023 的環境管理系統模式

如需有關 SELinux 儲存庫、工具和策略的詳細資訊,請參閱 SELinux NotebookSELinux 政策類型SELinux Project

OpenSSL 3

AL2023 具有 Open Secure Sockets Layer version 3 (OpenSSL 3) 加密工具組的功能。AL2023 支援 TLS 1.3 和 TLS 1.2 網路通訊協定。

AL2 預設隨附 OpenSSL 1.0.2。您可以針對 OpenSSL 1.1.1 建置應用程式。

如需有關 OpenSSL 的詳細資訊,請參閱 OpenSSL 遷移指南

如需詳細資訊,請參閱 安全更新和功能

IMDSV2

根據預設,任何使用 AL2023 AMI 啟動的執行個體都IMDSv2只需要,而您的預設躍點限制將設定為 2,以支援容器化工作負載支援。這是透過將 imds-support 參數設為 v2.0 來完成。如需詳細資訊,請參Amazon EC2 使用者指南中的設定 AMI

注意

工作階段記號的有效時間介於 1 秒到 6 小時之間。用來導向 IMDSv2 查詢的 API 要求的位址如下:

  • IPv4:169.254.169.254

  • IPv6:fd00:ec2::254

您可以手動覆寫這些設定,並IMDSv1使用「執行個體中繼資料」選項啟動屬性 您也可以使用 IAM 控制來強制執行不同的IMDS設定。如需設定和使用執行個體中繼資料服務的詳細資訊,請參閱 Amazon EC2 使用者指南中的使用IMDSv2設定新執行個體執行個體中繼資料選項和修改現有執行個體的執行個體中繼資料選項。

移除 log4j 熱修補 (log4j-cve-2021-44228-hotpatch)

注意

AL2023 未隨附 log4j-cve-2021-44228-hotpatch 套件。

為了響應 CVE-2021-44228,Amazon Linux 發布了對於 AL1 和 AL2 的阿帕奇 Log4j 的熱補丁的 RPM 打包版本。在對 Amazon Linux 加入熱修補的公告中,我們發現「安裝熱修補不能替代更新到 log4j 版本,以緩解 CVE-2021-44228 或 CVE-2021-45046。」

該熱修補是一種緩解措施,讓您有時間修補 log4j。AL2023 的第一個正式上市 (GA) 版本是在 CVE-2021-44228 的 15 個月後,因此 AL2023 不會隨附熱修補 (無論是否啟用)。

在 Amazon Linux 上執行自己的log4j版本的使用者應確保已更新為不受 CVE-2021-44228CVE-2021-45046 影響的版本。

AL2023 提供有關 更新 AL2023 的指引,讓您隨時掌握最新的安全修補。安全建議發佈在 Amazon Linux 安全中心

穩定性的確定性升級

通過版本化存儲庫功能進行確定性升級,默認情況下,每個 AL2023 AMI 都會鎖定到特定的存儲庫版本。您可以使用決定性升級,在套件版本和更新之間取得更高的一致性。每個主要或次要版本都包含特定的儲存庫版本。

AL2023 的新功能會預設啟用確定性升級。與 AL2 和其他舊版本使用的手動增量鎖定方法相比,這是一大改進。

如需詳細資訊,請參閱 透過 AL2023 上的版本化儲存庫使用確定性升級

源自多個上游

AL2023 以 RPM 為基礎,並包含源自多個版本的 Fedora 及其他發行版本的元件,例如 CentOS 9 Stream。Amazon Linux 核心源自直接從 kernel.org 發行的長期支援 (LTS) 發行版,並從其他發行版中獨立選出。

如需詳細資訊,請參閱 與 Fedora 的關係

AMI 根檔案系統和預設的 Amazon EBS 磁碟區類型

AL2023 AMI 和 AL2 的根檔案系統都使用 XFS 檔案系統。對於 AL2023,根裝置檔案系統的 mkfs 選項已針對 Amazon EC2 進一步最佳化。AL2023 也支援許多其他檔案系統,您可以在其他磁碟區使用這些檔案系統,以符合您的特定需求。

AL2023 AMI 預設使用 Amazon EBS gp3 磁碟區,而 AL2 AMI 預設使用 Amazon EBS gp2 磁碟區。您可以在啟動執行個體時變更磁碟區類型。

如需 Amazon EBS 磁碟區類型的詳細資訊,請參閱 Amazon EBS 一般用途磁碟區

如需有關啟動 Amazon EC2 執行個體的詳細資訊,請參閱 Amazon EC2 使用者指南中的啟動執行個體。

網路系統服務

systemd-networkd 系統服務管理 AL2023 中的網路介面。這是與 AL2 不同的變更,且後者使用 ISC dhclient 或 dhclient

如需詳細資訊,請參閱 網路服務

整合控制群組階層 (cgroup v2)

控制群組 (cgroup) 是 Linux 核心功能,用於階層式整理處理程序並為其分配系統資源。控制組廣泛用於執行容器執行期,並由 systemd 執行。

AL2 支持cgroupv1和 AL2023 支持cgroupv2。如果執行容器化工作負載 (例如 使用以 AL2023 為基礎的 Amazon ECS AMI 託管容器化工作負載 時),這就值得注意。

雖然 AL2023 仍然包含可讓系統執行使用的程式碼cgroupv1,但這不是建議或受支援的組態,而且會在 future 的 Amazon Linux 主要版本中完全移除。

低階 Linux 核心介面systemd cgroup 委託文件現有大量的說明文件。

容器之外的一個常見使用案例是建立對其可使用的系統資源有限制的systemd單位。如需詳細資訊,請參閱系統資源控制。

任務排程

cronie 套件預設安裝在 AL2 AMI 上,為排誠定期任務的傳統 crontab 方式提供支援。在 AL2023 中,cronie默認情況下不包括在內。因此,依預crontab設不再提供支援。

您可以選擇性安裝 cronie 套件以使用傳統 cron 工作。由於 systemd 提供的新增功能,建議您遷移至 systemd 計時器。

glibc、gcc 和 binutils 的套件

AL2023 包含許多與 AL2 相同的核心套件。

我們已更新以下三個 AL2023 核心工具鏈套件。

套件名稱 AL2 AL2023
glibc

2.26

2.34

gcc

7.3

11.3

binutils

2.29

2.39

如需詳細資訊,請參閱 核心工具鏈套件 glibc、gcc、binutils

套件管理工具

AL2023 的預設軟體套件管理工具為 DNF。DNF 是 AL2 套件管理工具 YUM 的後續工具。

如需詳細資訊,請參閱 套件管理工具

日誌系統

在 AL2023 中,日誌系統套件已從 AL2 變更。AL2023 預設不會安裝 rsyslog,因此預設無法在 AL2 中使用文字型日誌檔,例如 /var/log/messages。AL2023 的預設組態為 systemd-journal,並可使用 journalctl 檢查。雖然 rsyslog 是 AL2023 的選用套件,但建議使用基於 systemd 的新 journalctl 介面和相關套件。如需詳細資訊,請參閱 journalctl 手冊頁面。

curllibcurl 的套件變更

AL2023 將 curllibcurl 套件的常用通訊協定和功能區分為 curl-minimallibcurl-minimal。這可讓大多數使用者減少磁碟、記憶體和相依性佔用量,也是 AL2023 AMI 和容器的預設套件。

如果需要 curl 的完整功能 (例如 gopher:// 的支援),請執行下列命令來安裝 curl-fulllibcurl-full 套件。

$ dnf swap libcurl-minimal libcurl-full
$ dnf swap curl-minimal curl-full

GNU Privacy Guard (GNUPG)

AL2023 將 gnupg2 套件的最小和完整功能區分 gnupg2-minimalgnupg2-full 套件。預設僅安裝 gnupg2-minimal 套件。此套件提供在 rpm 套件中驗證數位簽章所需的最小功能。

如需 gnupg2 的更多功能,例如從金鑰伺服器下載金鑰,請確定已安裝 gnupg2-full 套件。執行下列命令以交換 gnupg2-minimalgnupg2-full

$ dnf swap gnupg2-minimal gnupg2-full

Amazon Corretto 作為預設 JVM

AL2023 隨附 Amazon Corretto 作為預設 (也是唯一) Java 開發套件 (JDK)。AL2023 中的所有Java基礎軟件包都是使用Amazon Corretto 17.

如果您要從 AL2 遷移,則可以從 AL2 上的等效OpenJDK版本平滑過渡到. Amazon Corretto

AWS CLI V2

AL2023 隨附第 2 AWS CLI 版,而 AL2 則隨附的第 1 版。 AWS CLI

UEFI Preferred

預設情況下,在支援 UEFI 韌體的執行個體類型上使用 AL2023 AMI 啟動的任何執行個體都會在 UEFI 模式下啟動。這是透過將 Boot Mode AMI 參數設為 uefi-preferred 來完成。如需詳細資訊,請參閱 Amazon EC2 使用者指南中的開機模式

SSH 伺服器預設組態變更

對於 AL2023 AMI,我們已變更隨發行版本產生的 sshd 主機金鑰類型。我們也已捨棄某些舊金鑰類型,以免在啟動時產生這些金鑰類型。使用者端必須支援 rsa-sha2-256rsa-sha2-512 通訊協定,或是支援 ssh-ed25519 使用 ed25519 金鑰。ssh-rsa 簽章會預設停用。

此外,預設 sshd_config 檔案中的 AL2023 組態設定包含 UseDNS=no。這項新設定代表 DNS 減損不太可能防止您與執行個體建立 ssh 工作階段。此項取捨是 authorized_keys 檔案中的 from=hostname.domain,hostname.domain 行項目將無法解析。由於 sshd 不再嘗試解析 DNS 名稱,因此必須將每個逗號分隔 hostname.domain 值轉換為對應的 IP 地址。

如需詳細資訊,請參閱 預設 SSH 伺服器組態

Extra Packages for Enterprise Linux (EPEL)

Extra Packages for Enterprise Linux (EPEL) 是 Fedora 社群的專案,目的是為企業級 Linux 作業系統建立大量套件。該項目主要生產 RHEL 和 CentOS 套件。AL2 與 CentOS 7 高度相容。因此,許多 EPEL7 套件都在 AL2 上運作。但是,AL2023 不支援 EPEL 或 EPEL 形式的儲存庫。

使用 cloud-init

在 AL2023 中,cloud-init 會管理套件儲存庫。在舊版的 Amazon Linux 中,cloud-init 預設安裝安全更新。這不是 AL2023 的預設值。用於在啟動時進行更新 releasever 的新確定性升級功能說明 AL2023 在啟動時啟用套件更新的方法。如需詳細資訊,請參閱 在 AL2023 中管理套件和作業系統更新穩定性的確定性升級

使用 AL2023 時,您可以將 cloud-init 與 SELinux 搭配使用。如需詳細資訊,請參閱 使用 cloud-init 來啟用 enforcing 模式

Cloud-init 使用 HTTP(S) 以從遠端位置載入 cloud-init 的組態內容。在舊版本中,當遠端資源無法使用時,Amazon Linux 不會提醒您。在 AL2023 中,不可用的遠端資源會產生嚴重錯誤,並且 cloud-init 執行失敗。AL2 的這種行為變更提供更安全的「失敗關閉」預設行為。

如需詳細資訊,請參閱 自訂 cloud-initcloud-init 文件

圖形桌面支援

AL2023 以雲端為中心,並針對使用 Amazon EC2 進行最佳化,目前不包含圖形或桌面環境。若要提供意見反應 GitHub,請參閱 https://github.com/

編譯器三元組

AL2023針對 GCC 和 LLVM 設定編譯器三元組,以指出 amazon 是供應商。

因此,AL2 aarch64-redhat-linux-gcc 在 AL2023 上變成 aarch64-amazon-linux-gcc

對於大多數用戶來說,這應該是完全透明的,並且可能只會影響那些在 AL2023 上構建編譯器的用戶。

32 位元 x86 (i686) 套件

作為 AL1 的 2014.09 版本的一部分,它宣布將是生成 32 位 AMI 的最後一個版本。因此,從 AL1 的 2015.03 版本開始,Amazon Linux 不再支援以 32 位元模式執行系統。AL2 針對 x86-64 主機的 32 位元二進位檔案提供有限的執行期支援,且未提供開發套件來建置新的 32 位元二進位檔案。AL2023 不再包含任何 32 位元使用者空間套件。我們建議您完成 64 位元程式碼的轉換。

如果您需要在 AL2023 上執行 32 位元二進位檔案,則可在基於 AL2023 的 AL2 容器內部使用 AL2 的 32 位元使用者空間。

lsb_releasesystem-lsb-core 套件

在過去,某些軟體會調用 lsb_release 命令 (在 AL2 中由套件 system-lsb-core 提供) 以取得關於執行軟體所用的 Linux 發行版資訊。Linux 標準規範 (LSB) 已導入此命令,且 Linux 發行版已加以採用。Linux 發行版已發展為使用更簡單的標準,以將此資訊保留在 /etc/os-release 和其他相關檔案內。

os-release 標準源自 systemd。如需詳細資訊,請參閱系統作業系統版本文件

AL2023 不隨附 lsb_release 命令,也不包含 system-lsb-core 套件。軟體應完成 os-release 標準的轉換,以維持與 Amazon Linux 和其他主要 Linux 發行版的相容性。