/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"
如果要在程式中檢測發行版名稱及其變種,
那麼可以使用 ID 與
VERSION_ID 欄位, 並將 ID_LIKE
用作 ID 的替補。
如果想要向用戶顯示發行版的名稱,
那麼可以使用 PRETTY_NAME
欄位。
注意,
滾動釋出的發行版可能不會提供版本資訊,
也就程式不能假定
VERSION 與 VERSION_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)
- 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