Manpages

NAME

os-release - 操 作 系 统 标 识

SYNOPSIS

/etc/os-release

/usr/lib/os-release

描 述

/etc/os-release 与 /usr/lib/os-release 文 件 包 含 了 操 作 系 统 识 别 数 据 。

os-release 文 件 的 基 本 格 式 是 一 系 列 换 行 符 分 隔 的 VAR=VALUE 行 (每 行 一 个 变 量 ), 可 以 直 接 嵌 入 到 shell 脚 本 中 使 用 。 注 意 , 此 文 件 并 不 支 持 变 量 替 换 之 类 的 任 何 高 级 shell 特 性 , 以 便 于 应 用 程 序 无 须 支 持 这 些 高 级 shell 特 性 , 即 可 直 接 使 用 此 文 件 。 如 果 VALUE 值 中 包 含 任 何 非 字 母 数 字 字 符 (也 就 是 A–Z, a–z, 0–9 之 外 的 字 符 ), 那 么 必 须 使 用 引 号 (单 双 皆 可 )界 定 , 并 且 任 何 在 Shell中 具 有 特 殊 含 义 的 字 符 , 包 括 : 美 元 符 , 单 双 引 号 , 反 斜 线 , 反 引 号 ... 等 等 , 都 必 须 使 用 shell风 格 的 反 斜 线 进 行 转 义 。 所 有 字 符 串 都 必 须 使 用 UTF-8编 码 , 并 且 禁 止 使 用 一 切 非 打 印 字 符 。 以 "#"开 头 的 行 将 被 作 为 注 释 忽 略 。 应 用 程 序 应 该 只 读 取 /etc/os-release 文 件 , 仅 在 /etc/os-release 不 存 在 的 情 况 下 , 才 可 以 读 取 /usr/lib/os-release 文 件 。 绝 对 禁 止 应 用 程 序 同 时 读 取 两 个 文 件 。 操 作 系 统 发 行 商 应 该 将 操 作 系 统 识 别 数 据 存 放 在 /usr/lib/os-release 文 件 中 , 同 时 将 /etc/os-release 作 为 一 个 软 连 接 , 以 相 对 路 径 的 方 式 指 向 /usr/lib/os-release 文 件 , 以 提 供 应 用 程 序 读 取 /etc 的 兼 容 性 。 软 连 接 使 用 相 对 路 径 是 为 了 避 免 在 chroot 或 initrd 环 境 中 失 效 。

os-release 的 内 容 应 当 仅 由 发 行 版 的 供 应 商 设 置 , 系 统 管 理 员 一 般 不 应 该 修 改 此 文 件 。 因 为 此 文 件 仅 用 于 操 作 系 统 识 别 , 所 以 必 须 禁 止 包 含 任 何 需 要 本 地 化 的 内 容 (也 就 是 禁 止 包 含 非 ASCII字 符 )。

/etc/os-release 与 /usr/lib/os-release 可 以 是 软 连 接 , 但 是 必 须 全 部 位 于 根 文 件 系 统 上 , 以 确 保 在 系 统 刚 启 动 时 即 可 读 取 其 内 容 。 更 多 有 关 os-release 的 理 解 , 请 参 阅 Announcement of /etc/os-release [1]

选 项

可 以 在 os-release 中 使 用 下 列 操 作 系 统 识 别 字 段 :

NAME= 不 带 版 本 号 且 适 合 人 类 阅 读 的 操 作 系 统 名 称 。 这 是 必 填 字 段 。 例 如 : "NAME=Fedora" 或 "NAME="Debian GNU/Linux"" 。 默 认 值 是 "NAME=Linux" 。

VERSION= 操 作 系 统 的 版 本 号 。 禁 止 包 含 操 作 系 统 名 称 , 但 是 可 以 包 含 适 合 人 类 阅 读 的 发 行 代 号 。 这 是 可 选 字 段 。 例 如 : "VERSION=17" 或 "VERSION="17 (Beefy Miracle)""

ID= 小 写 字 母 表 示 的 操 作 系 统 名 称 , 禁 止 包 含 0–9, a–z, ".", "_", "-" 以 外 的 字 符 , 禁 止 包 含 任 何 版 本 信 息 。 该 字 段 适 合 被 程 序 或 脚 本 解 析 , 也 可 用 于 生 成 文 件 名 。 这 是 必 填 字 段 。 例 如 : "ID=fedora" 或 "ID=debian" 。 默 认 值 是 "ID=linux" 。

ID_LIKE= 一 系 列 空 格 分 隔 的 字 符 串 , 其 中 的 每 一 项 都 符 合 ID= 字 段 的 规 范 , 也 就 是 仅 包 含 0–9, a–z, ".", "_", "-" 字 符 。 此 字 段 用 于 表 明 当 前 的 操 作 系 统 是 从 哪 些 "父 发 行 版 "派 生 而 来 , 切 勿 列 出 从 此 发 行 版 派 生 的 "子 发 行 版 ", 排 列 顺 序 由 近 到 远 , 关 系 最 近 的 发 行 版 名 称 排 在 最 前 , 紧 密 度 依 次 递 减 。 应 用 程 序 如 果 不 能 识 别 ID= 字 段 的 内 容 , 那 么 可 以 参 考 此 字 段 。 这 是 可 选 字 段 。 比 如 对 于 "ID=centos"来 说 , "ID_LIKE="rhel fedora"" 就 是 一 个 合 理 的 设 置 。 而 对 于 "ID=ubuntu" 来 说 , "ID_LIKE=debian" 也 很 合 理 。

VERSION_CODENAME= 小 写 字 母 表 示 的 操 作 系 统 发 行 代 号 , 禁 止 包 含 0–9, a–z, ".", "_", "-" 以 外 的 字 符 , 禁 止 包 含 任 何 版 本 信 息 以 及 操 作 系 统 名 称 。 该 字 段 适 合 被 程 序 或 脚 本 解 析 , 也 可 用 于 生 成 文 件 名 。 这 是 可 选 字 段 , 并 且 某 些 发 行 版 可 能 不 存 在 此 字 段 。 例 如 : "VERSION_CODENAME=buster", "VERSION_CODENAME=xenial"

VERSION_ID= 小 写 字 母 表 示 的 操 作 系 统 版 本 号 , 禁 止 包 含 0–9, a–z, ".", "_", "-" 以 外 的 字 符 , 禁 止 包 含 操 作 系 统 名 称 与 发 行 代 号 。 该 字 段 适 合 被 程 序 或 脚 本 解 析 , 也 可 用 于 生 成 文 件 名 。 这 是 可 选 字 段 。 例 如 : "VERSION_ID=17" 或 "VERSION_ID=11.04"

PRETTY_NAME= 适 合 人 类 阅 读 的 比 较 恰 当 的 发 行 版 名 称 , 可 选 的 包 含 发 行 代 号 与 系 统 版 本 之 类 的 信 息 , 内 容 比 较 随 意 。 这 是 必 填 字 段 。 例 如 : "PRETTY_NAME="Fedora 17 (Beefy Miracle)"" 。 默 认 值 是 "PRETTY_NAME="Linux"" 。

ANSI_COLOR= 在 控 制 台 上 显 示 操 作 系 统 名 称 的 文 字 颜 色 。 必 须 设 为 符 合 ESC [ m ANSI/ECMA-48 转 义 代 码 规 范 的 字 符 串 。 这 是 可 选 字 段 。 例 如 : "ANSI_COLOR="0;31""(红 色 ) 或 "ANSI_COLOR="1;34""(淡 蓝 )

CPE_NAME= 操 作 系 统 的 "CPE名 称 "(URI绑 定 语 法 ), 详 见 Common Platform Enumeration Specification [2] 文 档 。 这 是 可 选 字 段 。 例 如 : "CPE_NAME="cpe:/o:fedoraproject:fedora:17""

HOME_URL=, SUPPORT_URL=, BUG_REPORT_URL=, PRIVACY_POLICY_URL= 与 操 作 系 统 相 关 的 互 联 网 地 址 。 HOME_URL= 操 作 系 统 的 主 页 地 址 , 或 者 特 定 于 此 版 本 操 作 系 统 的 页 面 地 址 。 SUPPORT_URL= 操 作 系 统 的 支 持 页 面 (若 存 在 ), 主 要 用 于 发 行 商 提 供 技 术 支 持 的 页 面 。 BUG_REPORT_URL= 故 障 汇 报 页 面 (若 存 在 ), 主 要 用 于 基 于 社 区 互 动 的 发 行 版 。 PRIVACY_POLICY_URL= 隐 私 条 款 页 面 (若 存 在 )。 上 述 URL应 该 分 别 出 现 在 "About this system"界 面 下 的 "About this Operating System", "Obtain Support", "Report a Bug", "Privacy Policy" 子 界 面 中 。 这 些 字 段 的 值 必 须 符 合 RFC3986 [3] 规 范 , 通 常 以 "http:" 或 "https:" 开 头 , 但 也 可 能 以 "mailto:" 或 "tel:" 开 头 。 例 如 : "HOME_URL="https://fedoraproject.org/""; 与 "BUG_REPORT_URL="https://bugzilla.redhat.com/"";

BUILD_ID= 用 于 区 分 同 一 版 本 操 作 系 统 的 不 同 编 译 次 序 的 唯 一 标 示 符 (不 会 被 系 统 更 新 所 修 改 )。 该 字 段 在 不 同 的 VERSION_ID 之 间 有 可 能 是 相 同 的 , 因 为 BUILD_ID 仅 在 同 一 版 本 号 内 部 保 持 唯 一 。 每 当 发 布 新 版 本 的 操 作 系 统 时 , 只 需 要 更 新 VERSION_ID 字 段 即 可 , 并 不 一 定 必 须 更 新 BUILD_ID 字 段 。 这 是 可 选 字 段 。 例 如 : "BUILD_ID="2013-03-20.3"" 或 "BUILD_ID=201303203"

VARIANT= 适 合 人 类 阅 读 的 发 行 版 分 支 标 识 符 。 用 于 向 用 户 表 明 此 系 统 的 默 认 配 置 是 专 门 面 向 特 定 应 用 场 景 的 。 这 是 可 选 字 段 , 并 且 某 些 发 行 版 可 能 不 存 在 此 字 段 。 例 如 : "VARIANT="Server Edition"", "VARIANT="Smart Refrigerator Edition"" 注 意 , 此 字 段 仅 用 于 显 示 目 的 , 程 序 应 该 使 用 VARIANT_ID 字 段 进 行 可 靠 的 判 断 。

VARIANT_ID= 小 写 字 母 表 示 的 发 行 版 分 支 标 识 符 , 禁 止 包 含 0–9, a–z, ".", "_", "-" 以 外 的 字 符 。 该 字 段 适 合 被 程 序 或 脚 本 解 析 , 也 可 用 于 生 成 文 件 名 。 这 是 可 选 字 段 , 并 且 某 些 发 行 版 可 能 不 存 在 此 字 段 。 例 如 : "VARIANT_ID=server", "VARIANT_ID=embedded" 如 果 要 在 程 序 中 检 测 发 行 版 名 称 及 其 变 种 , 那 么 可 以 使 用 IDVERSION_ID 字 段 , 并 将 ID_LIKE 用 作 ID 的 替 补 。 如 果 想 要 向 用 户 显 示 发 行 版 的 名 称 , 那 么 可 以 使 用 PRETTY_NAME 字 段 。 注 意 , 滚 动 发 布 的 发 行 版 可 能 不 会 提 供 版 本 信 息 , 也 就 程 序 不 能 假 定 VERSIONVERSION_ID 字 段 必 然 存 在 。 操 作 系 统 的 发 行 商 可 能 为 此 文 件 引 入 新 的 字 段 , 强 烈 建 议 为 新 引 入 的 字 段 使 用 特 别 的 前 缀 以 避 免 冲 突 。 读 取 此 文 件 的 程 序 应 该 能 够 安 全 的 忽 略 不 理 解 的 字 段 。 例 如 : "DEBIAN_BTS="debbugs://bugs.debian.org/"";

例 子

NAME=Fedora
VERSION="24 (Workstation Edition)"
ID=fedora
VERSION_ID=24
PRETTY_NAME="Fedora 24 (Workstation Edition)"
ANSI_COLOR="0;34"
CPE_NAME="cpe:/o:fedoraproject:fedora:24"
HOME_URL="https://fedoraproject.org/";
BUG_REPORT_URL="https://bugzilla.redhat.com/";
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=24
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=24
PRIVACY_POLICY_URL=https://fedoraproject.org/wiki/Legal:PrivacyPolicy
VARIANT="Workstation Edition"
VARIANT_ID=workstation

参 见

systemd(1), lsb_release(1), hostname(5), machine-id(5), machine-info(5)

NOTES

1.

Announcement of /etc/os-release

http://0pointer.de/blog/projects/os-release

2.

Common Platform Enumeration Specification

http://scap.nist.gov/specifications/cpe/

3.

RFC3986

https://tools.ietf.org/html/rfc3986

本 页 面 中 文 版 由 中 文 man 手 册 页 计 划 提 供 。 翻 译 人 员 : 金 步 国 金 步 国 作 品 集 : http://www.jinbuguo.com 中 文 man 手 册 页 计 划 : https://github.com/man-pages-zh/manpages-zh