OS-RELEASE(5) os-release OS-RELEASE(5) (NAME) os-release, initrd-release, extension-release - (SYNOPSIS) /etc/os-release /usr/lib/os-release /etc/initrd-release /usr/lib/extension-release.d/extension-release.IMAGE (DESCRIPTION) /etc/os-release /usr/lib/os-release . os-release (newline) . (source) Bourne shell ( ) . A-Z a-z 0-9 (double quotes) (single quotes) . ( .) ("$" ) . UTF-8 . () . "#" () . . /etc/os-release /usr/lib/os-release . /usr/lib/os-release . . /usr/lib/os-release (vendor) . /etc/os-release (symlink) /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 (extension images) (Portable Services)[3] . . ID= ID= ID_LIKE= SYSEXT_LEVEL= VERSION_ID= . ABI/API overlay . SYSEXT_ extension-release ( ). : SYSEXT_ID=myext SYSEXT_VERSION_ID=1.2.3. extension-release.IMAGE IMAGE . (build) (deployment) : "extension-release.*" xattr(7) user.extension-release.strict "0" . os-release extension-release . (OPTIONS) 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= . (codename) . "PRETTY_NAME="Linux"" . : "PRETTY_NAME="Fedora 17 (Beefy Miracle)"" FANCY_NAME= PRETTY_NAME= ANSI UTF-8 . . PRETTY_NAME= ANSI_COLOR= . "\033" ESC "\\" . PRETTY_NAME= ( VERSION= ) ( VERSION_CODENAME= ). : "FANCY_NAME=" \033[31mTomato\033[0;1mOS\033[0m"" 260. CPE_NAME= CPE URI Common Platform Enumeration[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" . (end-of-life) (rolling release) . Fedora 40 Ubuntu 23.10 OpenSUSE Tumbleweed Arch Linux . o "lts" (LTS) . LTS . Ubuntu 24.04 Debian 12 Bookworm RHEL 9.4 . o "development" . Fedora Rawhide Debian Testing Fedora 40 Beta GNOME OS Nightly . 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= . . " " " " " " " " " " . RFC3986[5] "http:" "https:" "mailto:" "tel:". . (landing page) . : "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= . ("chrome") . . 259. VENDOR_NAME= . . . " " . . : "VENDOR_NAME="Fedora Project"" Fedora Linux "VENDOR_NAME="Canonical"" Ubuntu. 254. VENDOR_URL= . . VENDOR_NAME= . RFC3986[5] "http:" "https:" . . : "VENDOR_URL="https://fedoraproject.org"" "VENDOR_URL="https://canonical.com"". 254. EXPERIMENT= . . RELEASE_TYPE "experiment" . " " . RELEASE_TYPE "experiment" . : "EXPERIMENT="Switch to DNF5"" Fedora Linux DNF5 "EXPERIMENT="Port to Apple M3 chip"" Asahi Linux Apple M3 SoC "EXPERIMENT="Mutter !1441: Dynamic triple/double buffering (v4)"" GNOME OS CI !1441. 257. EXPERIMENT_URL= . . EXPERIMENT= . RFC3986[5] "http:" "https:" . . 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) hostname(5) . DNS ( 7 DNS) FQDN DNS . (DNS ). "?" machine-id(5) . : "foobar-????-????" "foobar-92a9-061c" . systemd- hostnamed.service(8) org.freedesktop.hostname1(5) . 248. ARCHITECTURE= (userspace) CPU . 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/ : initrd exitrd . "SYSEXT_SCOPE=system portable" initrd/exitrd . 250. CONFEXT_SCOPE= SYSEXT_SCOPE= confext . 254. PORTABLE_PREFIXES= (Portable Services)[3] . : ( ). (attach) : . 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 . (rolling releases). VERSION VERSION_ID . . . . . : "DEBIAN_BTS="debbugs://bugs.debian.org"". /etc/os-release ( /usr/lib/os-release ) /run/host/os-release . (EXAMPLES) . 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 . extension-release Fedora Workstation 32 ID=fedora VERSION_ID=32 . 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 . 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] . . 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!') . (SEE ALSO) systemd(1), lsb_release(1), hostname(5), machine-id(5), machine-info(5) (NOTES) 1. /etc/os-release https://0pointer.de/blog/projects/os-release 2. initrd https://docs.kernel.org/admin-guide/initrd.html 3. Portable Services https://systemd.io/PORTABLE_SERVICES 4. Common Platform Enumeration 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 systemd 261.2 OS-RELEASE(5)