# alternatives – Manages alternative programs for common commands

- Synopsis

- Requirements

- Parameters

- Examples

- Status

## Synopsis

- Manages symbolic links using the ‘update-alternatives’ tool.

- Useful when multiple programs are installed but provide similar functionality (e.g. different editors).

## Requirements

The below requirements are needed on the host that executes this module.

- update-alternatives

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---
link path |  | The path to the symbolic link that should point to the real executable. This option is always required on RHEL-based distributions. On Debian-based distributions this option is required when the alternative name is unknown to the system.
name string / required |  | The generic name of the link.
path path / required |  | The path to the real executable that the link should point to.
priority integer | Default: 50 | The priority of the alternative.

## Examples

    - name: Correct java version selected
      alternatives:
        name: java
        path: /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java

    - name: Alternatives link created
      alternatives:
        name: hadoop-conf
        link: /etc/hadoop/conf
        path: /etc/hadoop/conf.ansible

    - name: Make java 32 bit an alternative with low priority
      alternatives:
        name: java
        path: /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java
        priority: -10

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]

- This module is maintained by the Ansible Community. [community]

### Authors

- David Wittman (@DavidWittman)

- Gabe Mulley (@mulby)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.