'\" t .TH "OS\-RELEASE" "5" "" "systemd 231" "os-release" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" os-release \- 操作系统标识 .SH "SYNOPSIS" .PP /etc/os\-release .PP /usr/lib/os\-release .SH "描述" .PP /etc/os\-release 与 /usr/lib/os\-release 文件包含了操作系统识别数据。 .PP os\-release 文件的基本格式是 一系列换行符分隔的 VAR=VALUE 行(每行一个变量), 可以直接嵌入到 shell 脚本中使用。 注意,此文件并不支持变量替换之类的任何高级 shell 特性, 以便于应用程序无须支持这些高级 shell 特性, 即可直接使用此文件。 如果 VALUE 值中包含任何非字母数字字符(也就是 A\(enZ, a\(enz, 0\(en9 之外的字符), 那么必须使用引号(单双皆可)界定, 并且任何在Shell中具有特殊含义的字符, 包括:美元符, 单双引号, 反斜线, 反引号 \&.\&.\&. 等等,都必须使用shell风格的反斜线进行转义。 所有字符串都必须使用UTF\-8编码, 并且禁止使用一切非打印字符。 以"#"开头的行将被作为注释忽略。 .PP 应用程序应该只读取 /etc/os\-release 文件, 仅在 /etc/os\-release 不存在的情况下, 才可以读取 /usr/lib/os\-release 文件。 绝对禁止应用程序同时读取两个文件。 操作系统发行商应该将操作系统识别数据存放在 /usr/lib/os\-release 文件中, 同时将 /etc/os\-release 作为一个软连接, 以相对路径的方式指向 /usr/lib/os\-release 文件, 以提供应用程序读取 /etc 的兼容性。 软连接使用相对路径是为了避免在 chroot 或 initrd 环境中失效。 .PP os\-release 的内容应当仅由发行版的供应商设置, 系统管理员一般不应该修改此文件。 .PP 因为此文件仅用于操作系统识别, 所以必须禁止包含任何需要本地化的内容(也就是禁止包含非ASCII字符)。 .PP /etc/os\-release 与 /usr/lib/os\-release 可以是软连接, 但是必须全部位于根文件系统上, 以确保在系统刚启动时即可读取其内容。 .PP 更多有关 os\-release 的理解, 请参阅 \m[blue]\fBAnnouncement of /etc/os\-release\fR\m[]\&\s-2\u[1]\d\s+2 .SH "选项" .PP 可以在 os\-release 中使用下列操作系统识别字段: .PP \fINAME=\fR .RS 4 不带版本号且适合人类阅读的操作系统名称。这是必填字段。例如: "NAME=Fedora" 或 "NAME="Debian GNU/Linux"" 。 默认值是 "NAME=Linux" 。 .RE .PP \fIVERSION=\fR .RS 4 操作系统的版本号。 禁止包含操作系统名称,但是可以包含适合人类阅读的发行代号。 这是可选字段。 例如: "VERSION=17" 或 "VERSION="17 (Beefy Miracle)"" .RE .PP \fIID=\fR .RS 4 小写字母表示的操作系统名称, 禁止包含 0\(en9, a\(enz, "\&.", "_", "\-" 以外的字符,禁止包含任何版本信息。 该字段适合被程序或脚本解析,也可用于生成文件名。 这是必填字段。例如: "ID=fedora" 或 "ID=debian" 。 默认值是 "ID=linux" 。 .RE .PP \fIID_LIKE=\fR .RS 4 一系列空格分隔的字符串, 其中的每一项都符合 \fIID=\fR 字段的规范, 也就是仅包含 0\(en9, a\(enz, "\&.", "_", "\-" 字符。 此字段用于表明当前的操作系统 是从哪些"父发行版"派生而来, 切勿列出从此发行版派生的"子发行版", 排列顺序由近到远, 关系最近的发行版名称排在最前, 紧密度依次递减。 应用程序如果不能识别 \fIID=\fR 字段的内容, 那么可以参考此字段。 这是可选字段。 比如对于 "ID=centos"来说, "ID_LIKE="rhel fedora"" 就是一个合理的设置。 而对于 "ID=ubuntu" 来说, "ID_LIKE=debian" 也很合理。 .RE .PP \fIVERSION_CODENAME=\fR .RS 4 小写字母表示的操作系统发行代号, 禁止包含 0\(en9, a\(enz, "\&.", "_", "\-" 以外的字符, 禁止包含任何版本信息以及操作系统名称。 该字段适合被程序或脚本解析, 也可用于生成文件名。 这是可选字段, 并且某些发行版可能不存在此字段。例如: "VERSION_CODENAME=buster", "VERSION_CODENAME=xenial" .RE .PP \fIVERSION_ID=\fR .RS 4 小写字母表示的操作系统版本号, 禁止包含 0\(en9, a\(enz, "\&.", "_", "\-" 以外的字符, 禁止包含操作系统名称与发行代号。 该字段适合被程序或脚本解析, 也可用于生成文件名。 这是可选字段。例如: "VERSION_ID=17" 或 "VERSION_ID=11\&.04" .RE .PP \fIPRETTY_NAME=\fR .RS 4 适合人类阅读的比较恰当的发行版名称, 可选的包含发行代号与系统版本之类的信息,内容比较随意。 这是必填字段。 例如: "PRETTY_NAME="Fedora 17 (Beefy Miracle)"" 。 默认值是 "PRETTY_NAME="Linux"" 。 .RE .PP \fIANSI_COLOR=\fR .RS 4 在控制台上显示操作系统名称的文字颜色。 必须设为符合 ESC [ m ANSI/ECMA\-48 转义代码规范的字符串。 这是可选字段。 例如: "ANSI_COLOR="0;31""(红色) 或 "ANSI_COLOR="1;34""(淡蓝) .RE .PP \fICPE_NAME=\fR .RS 4 操作系统的"CPE名称"(URI绑定语法), 详见 \m[blue]\fBCommon Platform Enumeration Specification\fR\m[]\&\s-2\u[2]\d\s+2 文档。 这是可选字段。例如: "CPE_NAME="cpe:/o:fedoraproject:fedora:17"" .RE .PP \fIHOME_URL=\fR, \fISUPPORT_URL=\fR, \fIBUG_REPORT_URL=\fR, \fIPRIVACY_POLICY_URL=\fR .RS 4 与操作系统相关的互联网地址。 \fIHOME_URL=\fR 操作系统的主页地址, 或者特定于此版本操作系统的页面地址。 \fISUPPORT_URL=\fR 操作系统的支持页面(若存在), 主要用于发行商提供技术支持的页面。 \fIBUG_REPORT_URL=\fR 故障汇报页面(若存在), 主要用于基于社区互动的发行版。 \fIPRIVACY_POLICY_URL=\fR 隐私条款页面(若存在)。 上述URL应该分别出现在"About this system"界面下的 "About this Operating System", "Obtain Support", "Report a Bug", "Privacy Policy" 子界面中。 这些字段的值必须符合 \m[blue]\fBRFC3986\fR\m[]\&\s-2\u[3]\d\s+2 规范, 通常以 "http:" 或 "https:" 开头, 但也可能以 "mailto:" 或 "tel:" 开头。 例如: "HOME_URL="https://fedoraproject\&.org/"" 与 "BUG_REPORT_URL="https://bugzilla\&.redhat\&.com/"" .RE .PP \fIBUILD_ID=\fR .RS 4 用于区分同一版本操作系统的不同编译次序的唯一标示符(不会被系统更新所修改)。 该字段在不同的 VERSION_ID 之间有可能是相同的, 因为 BUILD_ID 仅在同一版本号内部保持唯一。 每当发布新版本的操作系统时, 只需要更新 VERSION_ID 字段即可,并不一定必须更新 BUILD_ID 字段。 这是可选字段。 例如: "BUILD_ID="2013\-03\-20\&.3"" 或 "BUILD_ID=201303203" .RE .PP \fIVARIANT=\fR .RS 4 适合人类阅读的发行版分支标识符。 用于向用户表明 此系统的默认配置是专门面向特定应用场景的。 这是可选字段, 并且某些发行版可能不存在此字段。 例如: "VARIANT="Server Edition"", "VARIANT="Smart Refrigerator Edition"" 注意,此字段仅用于显示目的, 程序应该使用 \fIVARIANT_ID\fR 字段进行可靠的判断。 .RE .PP \fIVARIANT_ID=\fR .RS 4 小写字母表示的发行版分支标识符, 禁止包含 0\(en9, a\(enz, "\&.", "_", "\-" 以外的字符。 该字段适合被程序或脚本解析, 也可用于生成文件名。 这是可选字段, 并且某些发行版可能不存在此字段。 例如: "VARIANT_ID=server", "VARIANT_ID=embedded" .RE .PP 如果要在程序中检测发行版名称及其变种, 那么可以使用 \fIID\fR 与 \fIVERSION_ID\fR 字段, 并将 \fIID_LIKE\fR 用作 \fIID\fR 的替补。 如果想要向用户显示发行版的名称, 那么可以使用 \fIPRETTY_NAME\fR 字段。 .PP 注意, 滚动发布的发行版可能不会提供版本信息, 也就程序不能假定 \fIVERSION\fR 与 \fIVERSION_ID\fR 字段必然存在。 .PP 操作系统的发行商可能为此文件引入新的字段, 强烈建议为新引入的字段使用特别的前缀以避免冲突。 读取此文件的程序应该能够安全的忽略不理解的字段。 例如: "DEBIAN_BTS="debbugs://bugs\&.debian\&.org/"" .SH "例子" .sp .if n \{\ .RS 4 .\} .nf 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 .fi .if n \{\ .RE .\} .SH "参见" .PP \fBsystemd\fR(1), \fBlsb_release\fR(1), \fBhostname\fR(5), \fBmachine-id\fR(5), \fBmachine-info\fR(5) .SH "NOTES" .IP " 1." 4 Announcement of /etc/os-release .RS 4 \%http://0pointer.de/blog/projects/os-release .RE .IP " 2." 4 Common Platform Enumeration Specification .RS 4 \%http://scap.nist.gov/specifications/cpe/ .RE .IP " 3." 4 RFC3986 .RS 4 \%https://tools.ietf.org/html/rfc3986 .RE .SH "跋" .br 本页面中文版由中文 man 手册页计划提供。 .PP 翻译人员:金步国 .br 金步国作品集:http://www.jinbuguo.com .br .br 中文 man 手册页计划:\fBhttps://github.com/man-pages-zh/manpages-zh\fR