If the installation is LSB compliant, the "/etc/lsb-release" file should contain the LSB_VERSION field. The value of the field should be a colon separated list of supported module versions indicating the LSB specification modules to which the installation is compliant. If the installation is not compliant, the above field should not be present.
Optional fields are DISTRIB_ID, DISTRIB_RELEASE, DISTRIB_CODENAME, DISTRIB_DESCRIPTION and can be used to override information which is parsed from the "/etc/distrib-release" file.
If the "/etc/lsb-release.d" directory exists, it is
searched for filenames which are taken as additional module-version
strings to add to LSB_VERSION.
The "/etc/distrib-release" file contains a description line which is parsed to get information (especially on currently non-LSB compliant systems).
The required line style is:
"Distributor release x.x (Codename)"
Where Distributor can be a couple of words, but then concatenated
(i.e. Linux Foo BarLinux Linux -> FooBarLinux),
x.x starts with a digit followed by any non-blank characters, Codename will also be concatenated (blanks cleanup only).
release may not be used as a keyword in DISTRIB_DESCRIPTION if you don't want to override "/etc/distrib-release" data.
DISTRIB_DESCRIPTION="I enjoy using my distrib"
and the "/etc/lsb-release.d" directory contains:
and the "/etc/foobar-release" file contains:
My Linux Distrib release 1.0RC4 (TryIt)
Then the results of various options will be:
$ ./lsb_release --all
LSB Version: core-2.0-ia64:core-2.0-noarch:graphics-2.0-ia64:graphics-2.0-noarch
Distributor ID: MyDistrib
Description: I enjoy using my distrib
$ ./lsb_release -a -s
1.0 MyDistrib "I enjoy using my distrib" 1.0RC4 TryIt
If the "/etc/lsb-release" file is absent (indicating this is not an LSB compliant distribution), the result will be:
Originally written by Dominique MASSONIE.