本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 os-release 标准
Amazon Linux 遵循用于识别 Linux 发行版的 os-release 标准
注意
该标准规定首先尝试解析 /etc/os-release,其次是 /usr/lib/os-release。应注意遵循有关文件名和路径的标准。
关键识别差异
os-release 位于 /etc/os-release,如果该位置不存在,则位于 /usr/lib/os-release。完整信息请查阅 os-release 标准
确定实例是否运行 Amazon Linux 最可靠的方法是检查 os-release 中的 ID 字段。
区分不同版本最可靠的方法是检查 os-release 中的 VERSION_ID 字段:
-
Amazon Linux AMI:
VERSION_ID包含基于日期的版本(例如2018.03) -
AL2:
VERSION_ID="2" -
AL2023:
VERSION_ID="2023"
注意
请记住,VERSION_ID 是一个供编程使用的机器可读字段,而 PRETTY_NAME 是为向用户显示而设计的。有关字段类型的更多信息,请参阅 字段类型:机器可读与人类可读。
字段类型:机器可读与人类可读
/etc/os-release 文件(或者如果 /etc/os-release 不存在,则为 /usr/lib/os-release 文件)包含两种类型的字段:供编程使用的机器可读字段,以及供向用户呈现信息用的人类可读字段。
机器可读字段
这些字段使用标准化格式,旨在供脚本、程序包管理器和其他自动化工具处理。它们仅包含小写字母、数字和有限的标点符号(句点、下划线和连字符)。
-
ID:操作系统标识符。Amazon Linux 在所有版本中使用amzn,以此区别于其他发行版,如 Debian (debian)、Ubuntu (ubuntu) 或 Fedora (fedora) -
VERSION_ID:供编程使用的操作系统版本(例如2023) -
ID_LIKE:相关发行版的空间分隔列表(例如fedora) -
VERSION_CODENAME:供脚本使用的发布代号(例如karoo) -
VARIANT_ID:用于编程决策的变体标识符 -
BUILD_ID:系统映像的构建标识符 -
IMAGE_ID:容器化环境的映像标识符 -
PLATFORM_ID:平台标识符(例如platform:al2023)
人类可读字段
这些字段旨在向用户显示,可能包含空格、混合大小写和描述性文本。在用户界面中呈现操作系统信息时应使用它们。
-
NAME:用于显示的操作系统名称(例如Amazon Linux) -
PRETTY_NAME:用于显示的包含版本的完整操作系统名称(例如Amazon Linux 2023.8.20250721) -
VERSION:适合向用户呈现的版本信息 -
VARIANT:用于显示的变体或版本名称(例如Server Edition)
其他信息字段
这些字段提供有关操作系统的额外元数据:
-
HOME_URL:项目主页 URL -
DOCUMENTATION_URL:文档 URL -
SUPPORT_URL:支持信息 URL -
BUG_REPORT_URL:错误报告 URL -
VENDOR_NAME:供应商名称 -
VENDOR_URL:供应商 URL -
SUPPORT_END— YYYY-MM-DD 格式中的 End-of-support日期 -
CPE_NAME:通用平台枚举标识符 -
ANSI_COLOR:用于终端显示的 ANSI 颜色代码
当编写需要以编程方式识别 Amazon Linux 的脚本或应用程序时,请使用机器可读字段,如 ID 和 VERSION_ID。当向用户显示操作系统信息时,请使用人类可读字段,如 PRETTY_NAME。
/etc/os-release 示例
/etc/os-release 文件内容在 Amazon Linux 各版本间有所不同:
与其他发行版的比较
要了解 Amazon Linux 在更广泛的 Linux 生态系统中的位置,可将其 /etc/os-release 格式与其他主要发行版进行比较:
请注意机器可读字段如何提供跨发行版的一致标识:
-
ID:唯一标识操作系统:Amazon Linux 为amzn,Fedora 为fedora,Debian 为debian,Ubuntu 为ubuntu -
ID_LIKE— 显示发行关系:亚马逊 Linux 使用fedora(AL2023) 或centos rhel fedora(AL2),而 Ubuntu 则显示了其 Debidebianan 传统 -
VERSION_ID— 提供机器可解析的版本信息:2023AL2023、Fedora、Debian、42Ubuntu1224.04
相比之下,人类可读字段专为向用户显示而设计:
-
NAME:用户友好的操作系统名称:Amazon Linux、Fedora Linux、Debian GNU/Linux、Ubuntu -
PRETTY_NAME:包含版本的完整显示名称:Amazon Linux 2023.8.20250721、Fedora Linux 42 (Container Image)、Debian GNU/Linux 12 (bookworm)、Ubuntu 24.04.2 LTS -
VERSION:具有附加上下文(如代号或发布类型)的人类可读版本
编写跨平台脚本时,应始终使用机器可读字段(ID、VERSION_ID、ID_LIKE)进行逻辑判断和决策,并仅使用人类可读字段(PRETTY_NAME、NAME)向用户显示信息。