OS Restrictions

<os> - Defining OS Restrictions

The <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:

Attributes

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.

Attribute

Description

Required

Values

family

The parent element will only be applied when installing on this OS Family

no

"unix" | "windows" | "mac"

name

The parent element will only be applied when installing on this exact OS name

no

Valid OS name defined by the OS vendor, for example "Windows XP" or "Linux"

version

The parent element will only be applied when installing on this exact OS version (see the Java os.version system property)

no

Valid OS version

arch

The parent element will only be applied when installing on this system architecture/processor (see the Java os.arch system property)

no

Valid OS architecture

A List of known OS names and architectures can be found here

Using OS Restrictions

The following example says that the <executable> element only applies when the installation is being done on a unix-like operating system.

Example:

<packs>
(...)
    <pack name="Core" required="yes">
    (...)
        <executable targetfile="$INSTALL_PATH/bin/compile" stage="never">
            <os family="unix"/>
        </executable>
    (...)
    </pack>
(...)
</packs>

Note that it's possible to add multiple os restrictions for the same element.

Example:

<packs>
(...)
    <pack name="Core" required="yes">
    (...)
        <executable targetfile="$INSTALL_PATH/bin/compile" stage="never">
            <os family="mac"/>
            <os family="linux"/>
        </executable>
    (...)
    </pack>
(...)
</packs>