<os>- Defining OS Restrictions
<os> element affects the applicability of the enclosing (parent) element.
It restricts the parent element to applying only when the installation is being done on the specified operating systems or processor architecture.
It can be embedded into the following elements:
Although each attribute is not required, it makes no sense to include <os> unless you specify at least one of family, name or arch. If <os> is specified with none of these, the parent element will be ignored in all installation environments.
The parent element will only be applied when installing on this OS Family
"unix" | "windows" | "mac"
The parent element will only be applied when installing on this exact OS name
Valid OS name defined by the OS vendor, for example "Windows XP" or "Linux"
The parent element will only be applied when installing on this exact OS version (see the Java os.version system property)
Valid OS version
The parent element will only be applied when installing on this system architecture/processor (see the Java os.arch system property)
Valid OS architecture
A List of known OS names and architectures can be found here
The following example says that the
<executable> element only applies when the installation is being done on a unix-like operating system.
<packs> (...) <pack name="Core" required="yes"> (...) <executable targetfile="$INSTALL_PATH/bin/compile" stage="never"> <os family="unix"/> </executable> (...) </pack> (...) </packs>