How to find "file-release" in OS X El Capitan 10.11.6?

I can not find file-release through command line on OS X El Capitan Version 10.11.6. On my virtual machine in Ubuntu I can do "ls /etc/*release" and it shows me two files with all needed information:

$ cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 7.0 (Maipo)

$ cat /etc/os-release 
NAME="Red Hat Enterprise Linux Server"
VERSION="7.0 (Maipo)"
ID="rhel"
ID_LIKE="fedora"
VERSION_ID="7.0"
PRETTY_NAME="Red Hat Enterprise Linux Server 7.0 (Maipo)"

No idea how to find the file with release information on Mac. Please give me a hint or a hint how to search it?


Solution 1:

The file(s) /etc/*release contain OS specific informations like distribution name and version mainly in Linux distributions.

One of the purpose of the file(s) is to help software to detect the distribution type.

A file which contains similar informations doesn't really exist in OS X/macOS but can be mimicked with the following shell script:

#!/bin/sh

OS=`uname -s`
REV=`uname -r`
MACH=`uname -m`
if [ "${OS}" = "Darwin" ]; then
    OIFS="$IFS"
    IFS=$'\n'
    set `sw_vers` > /dev/null
    DIST=`echo $1 | tr "\n" ' ' | sed 's/ProductName:[ ]*//'`
    VERSION=`echo $2 | tr "\n" ' ' | sed 's/ProductVersion:[ ]*//'`
    BUILD=`echo $3 | tr "\n" ' ' | sed 's/BuildVersion:[ ]*//'`
    OSSTR="${OS} ${DIST} ${REV}(SORRY_NO_PSEUDONAME ${BUILD} ${MACH})"
    IFS="$OIFS"
fi
echo ${OSSTR}

Executing the script in my system will yield:

Darwin Mac OS X 13.4.0(SORRY_NO_PSEUDONAME 13F1911 x86_64)

In OS X/macOS the file is not needed because the requirements of a software package are determined by other means:

  • Info.plist in an installer app (e.g. Install macOS Sierra.app requires LSArchitecturePriority=x86_64 or LSMinimumSystemVersion=10.7)
  • preflight scripts in an installer packages which use sw_vers or similar commands to determine the OS version.

Solution 2:

Setting aside that linux has a different release structure than macOS - you can use the native tool and files to catalog macOS versions for all OS X prior to 10.12 as well:

 /System/Library/CoreServices/SystemVersion.plist

And the manual page for sw_vers documents the above as the source for build and OS naming.

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.12
BuildVersion:   16A323

Also, the javascript documentation seems a little more detailed if you don't need a bash / shell / command tool: https://developer.apple.com/reference/installerjs/system