OS-RELEASE(5) os-release OS-RELEASE(5) os-release initrd-release extension-release - /etc/os-release /usr/lib/os-release /etc/initrd-release /usr/lib/extension-release.d/extension-release.IMAGE /etc/os-release /usr/lib/os-release . os-release . Bourne shell ( ) . A-Z a-z 0-9. ( .) ("$" ) . UTF-8 . . "#" . . /etc/os-release /usr/lib/os-release. /usr/lib/os-release . . /usr/lib/os-release . /etc/os-release /usr/lib/os-release /etc/. chroot initrd. os-release . . /etc/os-release /usr/lib/os-release . os-release . . . os-release /etc/os-release[1]. /etc/initrd-release initrd[2] exitrd /etc/initrd-release os-release . initrd/exitrd. /etc/os-release /etc/initrd-release ( ) /etc/os-release ( ) . os-release initrd-release . /usr/lib/extension-release.d/extension-release.IMAGE /usr/lib/extension-release.d/extension-release.IMAGE os-release [3]. . ID= ID= ID_LIKE= SYSEXT_LEVEL= VERSION_ID= . ABI/API . extension-release SYSEXT_ ( ). : SYSEXT_ID=myext SYSEXT_VERSION_ID=1.2.3. extension-release.IMAGE IMAGE . : "extension-release.*" user.extension-release.strict xattr(7) "0" . os-release extension-release . os-release: NAME= . "NAME=Linux". : "NAME=Fedora" "NAME="Debian GNU/Linux"". ID= ( 0-9 a-z "." "_" "-") . "ID=linux". . : "ID=fedora" "ID=debian". ID_LIKE= ID=. . . ID=. . . : "ID=centos" "ID_LIKE="rhel fedora"" . "ID=ubuntu" "ID_LIKE=debian" . PRETTY_NAME= . . "PRETTY_NAME="Linux"". : "PRETTY_NAME="Fedora 17 (Beefy Miracle)"" FANCY_NAME= PRETTY_NAME= ANSI UTF-8 . . PRETTY_NAME= ANSI_COLOR=. "\e033" ESC "\e\e" . PRETTY_NAME= ( VERSION=) ( VERSION_CODENAME=). : "FANCY_NAME=" \e033[31mTomato\e033[0;1mOS\e033[0m"" 260. CPE_NAME= CPE URI Common Platform Enumeration Specification[4] NIST. . : "CPE_NAME="cpe:/o:fedoraproject:fedora:17"" VARIANT= . . . : "VARIANT="Server Edition"" "VARIANT="Smart Refrigerator Edition"". : . VARIANT_ID . 220. VARIANT_ID= ( 0-9 a-z "." "_" "-") . . . : "VARIANT_ID=server" "VARIANT_ID=embedded". 220. VERSION= . . : "VERSION=17" "VERSION="17 (Beefy Miracle)"". VERSION_ID= ( 0-9 a-z "." "_" "-") . . : "VERSION_ID=17" "VERSION_ID=11.04". VERSION_CODENAME= ( 0-9 a-z "." "_" "-") . . : "VERSION_CODENAME=buster" "VERSION_CODENAME=xenial". 231. BUILD_ID= . VERSION_ID IMAGE_ID+IMAGE_VERSION . BUILD_ID : VERSION_ID BUILD_ID . . : "BUILD_ID="2013-03-20.3"" "BUILD_ID=201303203". 200. IMAGE_ID= ( 0-9 a-z "." "_" "-") . . . : "IMAGE_ID=vendorx-cashier-system" "IMAGE_ID=netbook-image". 249. IMAGE_VERSION= ( 0-9 a-z "." "_" "-") . IMAGE_ID . : "IMAGE_VERSION=33" "IMAGE_VERSION=47.1rc1". 249. RELEASE_TYPE= ( 0-9 a-z "." "_" "-") . : o "stable" . . 40 23.10 . o "lts" . LTS . 24.04 12 RHEL 9.4. o "development" . 40 . o "experiment" . EXPERIMENT=. "stable". : "RELEASE_TYPE=development" "RELEASE_TYPE=lts". 257. : IMAGE_ID+IMAGE_VERSION . VERSION_ID . BUILD_ID VERSION_ID . HOME_URL=, DOCUMENTATION_URL=, SUPPORT_URL=, BUG_REPORT_URL=, PRIVACY_POLICY_URL= . HOME_URL= . DOCUMENTATION_URL= . SUPPORT_URL= . . BUG_REPORT_URL= . . PRIVACY_POLICY_URL= . . URL " " " " " " " " " ". RFC3986[5] URL "http:" "https:" "mailto:" "tel:". URL . . : "HOME_URL="https://fedoraproject.org/"", "BUG_REPORT_URL="https://bugzilla.redhat.com/"". SUPPORT_END= . ( " " .) ISO 8601 "YYYY-MM-DD" . "SUPPORT_END=2001-01-01" . 252. LOGO= freedesktop.org[6]. . . : "LOGO=fedora-logo" "LOGO=distributor-logo-opensuse" 240. ANSI_COLOR= () . ESC [ m ANSI/ECMA-48 . . : "ANSI_COLOR="0;31"" "ANSI_COLOR="1;34"" "ANSI_COLOR="0;38;2;60;110;180"" . ANSI_COLOR_REVERSE= ANSI_COLOR= . "" . . 259. VENDOR_NAME= . . . " " . . : "VENDOR_NAME="Fedora Project"" "VENDOR_NAME="Canonical"" . 254. VENDOR_URL= . . VENDOR_NAME= . RFC3986[5] URL "http:" "https:". URL . : "VENDOR_URL="https://fedoraproject.org/"", "VENDOR_URL="https://canonical.com/"". 254. EXPERIMENT= . . RELEASE_TYPE "experiment" . " " / . RELEASE_TYPE "experiment" . : "EXPERIMENT="Switch to DNF5"" DNF5 "EXPERIMENT="Port to Apple M3 chip"" Asahi Linux Apple M3 SoC "EXPERIMENT="Mutter !1441: Dynamic triple/double buffering (v4)"" GNOME OS CI Mutter !1441. 257. EXPERIMENT_URL= . . EXPERIMENT= . RFC3986[5] URL "http:" "https:". URL . EXPERIMENT=: "EXPERIMENT_URL="https://fedoraproject.org/wiki/Changes/SwitchToDnf5"", "EXPERIMENT_URL="https://github.com/AsahiLinux/docs/wiki/M3-Series-Feature-Support"", "EXPERIMENT_URL="https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1441"". 257. DEFAULT_HOSTNAME= hostname(5) . DNS ( ASCII 7- DNS) FQDN DNS. 64 (DNS ). "?" machine-id(5) . : "foobar-????-????" "foobar-92a9-061c" . org.freedesktop.hostname1(5) systemd-hostnamed.service(8) . 248. ARCHITECTURE= . ConditionArchitecture= systemd.unit(5). . GPT GUID . . 252. SYSEXT_LEVEL= ( 0-9 a-z "." "_" "-") . /usr/lib/extension-release.d/extension-release.IMAGE initrd[2] systemd-sysext(8)) . : "SYSEXT_LEVEL=2" "SYSEXT_LEVEL=15.14". 248. CONFEXT_LEVEL= SYSEXT_LEVEL= confext. /etc/extension-release.d/extension-release.IMAGE . : "CONFEXT_LEVEL=2" "CONFEXT_LEVEL=15.14". 254. SYSEXT_SCOPE= "system" "initrd" "portable". extension-release.d/ : initrds exitrds . "SYSEXT_SCOPE=system portable" initrd/exitrd. 250. CONFEXT_SCOPE= SYSEXT_SCOPE= confext. 254. PORTABLE_PREFIXES= [3]. : ( ). : . 250. PORTABLE_SCOPE= . "system" "user" "any". "system" systemd-portabled. "user" systemd-portabled. "any" systemd-portabled. "PORTABLE_SCOPE=system". 259. ID VERSION_ID ID_LIKE ID. PRETTY_NAME. . VERSION VERSION_ID . . . . . : "DEBIAN_BTS="debbugs://bugs.debian.org/"". /etc/os-release ( /usr/lib/os-release ) /run/host/os-release. 1. os-release Fedora Workstation NAME=Fedora VERSION="32 (Workstation Edition)" ID=fedora VERSION_ID=32 PRETTY_NAME="Fedora 32 (Workstation Edition)" ANSI_COLOR="0;38;2;60;110;180" LOGO=fedora-logo-icon CPE_NAME="cpe:/o:fedoraproject:fedora:32" HOME_URL="https://fedoraproject.org/" DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f32/system-administrators-guide/" SUPPORT_URL="https://fedoraproject.org/wiki/Communicating_and_getting_help" BUG_REPORT_URL="https://bugzilla.redhat.com/" REDHAT_BUGZILLA_PRODUCT="Fedora" REDHAT_BUGZILLA_PRODUCT_VERSION=32 REDHAT_SUPPORT_PRODUCT="Fedora" REDHAT_SUPPORT_PRODUCT_VERSION=32 PRIVACY_POLICY_URL="https://fedoraproject.org/wiki/Legal:PrivacyPolicy" VARIANT="Workstation Edition" VARIANT_ID=workstation 2. extension-release Fedora Workstation 32 ID=fedora VERSION_ID=32 3. os-release sh(1) #!/bin/sh -eu # SPDX-License-Identifier: MIT-0 test -e /etc/os-release && os_release='/etc/os-release' || os_release='/usr/lib/os-release' . "${os_release}" echo "Running on ${PRETTY_NAME:-Linux}" if [ "${ID:-linux}" = "debian" ] || [ "${ID_LIKE#*debian*}" != "${ID_LIKE}" ]; then echo "Looks like Debian!" fi 4. os-release python(1) ( >= 3.10) #!/usr/bin/python # SPDX-License-Identifier: MIT-0 import platform os_release = platform.freedesktop_os_release() pretty_name = os_release.get('PRETTY_NAME', 'Linux') print(f'Running on {pretty_name!r}') if 'fedora' in [os_release.get('ID', 'linux'), *os_release.get('ID_LIKE', '').split()]: print('Looks like Fedora!') platform.freedesktop_os_release[7] . 5. os-release python(1) ( ) #!/usr/bin/python # SPDX-License-Identifier: MIT-0 import ast import re import sys def read_os_release(): try: filename = '/etc/os-release' f = open(filename) except FileNotFoundError: filename = '/usr/lib/os-release' f = open(filename) for line_number, line in enumerate(f, start=1): line = line.rstrip() if not line or line.startswith('#'): continue if m := re.match(r'([A-Z][A-Z_0-9]+)=(.*)', line): name, val = m.groups() if val and val[0] in '"\'': val = ast.literal_eval(val) yield name, val else: print(f'{filename}:{line_number}: bad line {line!r}', file=sys.stderr) os_release = dict(read_os_release()) pretty_name = os_release.get('PRETTY_NAME', 'Linux') print(f'Running on {pretty_name!r}') if 'debian' in [os_release.get('ID', 'linux'), *os_release.get('ID_LIKE', '').split()]: print('Looks like Debian!') . systemd(1), lsb_release(1), hostname(5), machine-id(5), machine-info(5) 1. /etc/os-release https://0pointer.de/blog/projects/os-release 2. initrd https://docs.kernel.org/admin-guide/initrd.html 3. https://systemd.io/PORTABLE_SERVICES 4. http://scap.nist.gov/specifications/cpe/ 5. RFC3986 https://tools.ietf.org/html/rfc3986 6. freedesktop.org https://standards.freedesktop.org/icon-theme-spec/latest 7. platform.freedesktop_os_release https://docs.python.org/3/library/platform.html#platform.freedesktop_os_release 3 . . : . systemd 260.2 OS-RELEASE(5)