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