---
title: OpenLM Broker installation on Linux/Unix
description: Install OpenLM Broker for OpenLM Version 26 on Linux or Unix from the tar.gz archive or a DEB or RPM package, connect it to OpenLM SLM or SLMC, upgrade it, or remove it.
product: OpenLM Version 26 (legacy)
---

> **OpenLM Version 26 (legacy).** This page documents the legacy product, not OpenLM Platform.

Install OpenLM Broker on a Linux or Unix license server so that it can query the license managers on that machine and report their usage to OpenLM SLM or to Software License Management Cloud (SLMC). To install on Windows, see [OpenLM Broker installation on Windows](https://www.openlm.com/documentation/legacy/openlm-broker/index).

The steps cover distributions that use systemd and distributions that use another init system. For the distributions OpenLM tests, see [system requirements](https://www.openlm.com/documentation/legacy/system-requirements).

## Before you begin

Check the following before you install:

- **Java:** a working Java runtime (JRE or JDK) must already be present on the machine: Java 11 or higher, or Java 8. Java 9 and 10 aren't supported. Unlike the Windows installer, the Linux downloads don't include Java.
- **One Broker per license server:** one Broker can monitor several license managers on its own machine, but each additional license server needs its own Broker. Repeat this page once per server.
- **Network access:** the Broker must reach the license managers on its machine and the OpenLM SLM it reports to, on port 5015 by default. For SLMC, it needs internet access. If the Broker can reach the internet only through a proxy, see [OpenLM Broker connectivity through HTTP proxy server](https://www.openlm.com/documentation/legacy/openlm-broker/openlm-broker-connectivity-through-http-proxy-server).
- **Authorization file:** to report to SLMC, or to an OpenLM SLM that uses the Identity Service, have the Broker authorization file (`.json`) ready. The section [Import an authorization file](#import-an-authorization-file) says where to get it.

## Download the Broker

Download the Broker for Linux from the [Downloads page](https://www.openlm.com/downloads/). It comes in the following formats, all for x86-64:

- A **tar.gz** archive that works on every distribution. See [Install from the tar.gz archive](#install-from-the-targz-archive).
- Native **DEB** and **RPM** packages for Debian/Ubuntu and RHEL-family systems. See [Install from a DEB or RPM package](#install-from-a-deb-or-rpm-package).

## Install from the tar.gz archive

### Preliminary steps

1. Extract the archive (OpenLM\_Broker\_#.#.#.#.tar.gz) to a convenient location. It extracts into a folder named **openlm-broker**.

2. Open the **settings.sh** file in your editor of choice. This file holds all the variables required for Broker to operate. The shipped file leaves **JAVA\_HOME** empty, so you must set it to the path of your Java runtime (Java 11 or higher, or Java 8).

   > *The **JAVA\_HOME** path must **not** end with a trailing slash*.

   Optionally, edit the **BROKERSRVNAMEUSER** variable to run the service from an account other than "root". In this case, you must ensure that all the files in the **openlm-broker** folder have their ownership reassigned to the new user.

   Change the **BROKERSRVNAME** variable when you want to install multiple instances of OpenLM Broker in parallel.

   The file as shipped:

   ```text
   #!/usr/bin/env bash
   # Edit this file and customize service name in order to install multiple Broker services in parallel
   BROKERSRVNAMEUSER="root"
   BROKERSRVNAME="openlm_broker_$BROKERSRVNAMEUSER"
   BROKERSRVNAMEFILE="$BROKERSRVNAME.service"

   #Change JAVA_HOME to point at installation folder
   [[ -z "$JAVA_HOME" ]] && JAVA_HOME=
   ```

3. Save the file and continue with the installation steps that match your Linux distribution.

### Install Broker as a service (systemd)

If your Linux version supports systemd, the following steps install OpenLM Broker as a service that starts automatically when the system starts:

1. Install the Broker as a service:

   ```bash
   sudo ./broker.sh install
   ```

2. Check the status of the Broker service:

   ```bash
   sudo ./broker.sh status
   ```

3. Connect the Broker to OpenLM SLM or SLMC and add your license managers, as described in [Connect the Broker to OpenLM SLM or SLMC](#connect-the-broker-to-openlm-slm-or-slmc).

### Run Broker as a background process (no systemd)

If your Linux version doesn't support systemd, the following steps run OpenLM Broker as a background process instead:

1. Start the Broker process:

   ```bash
   sudo ./broker.sh start
   ```

2. Connect the Broker to OpenLM SLM or SLMC and add your license managers, as described in [Connect the Broker to OpenLM SLM or SLMC](#connect-the-broker-to-openlm-slm-or-slmc).

## Install from a DEB or RPM package

Instead of the tar.gz archive, you can install the native package for your distribution.

On Debian/Ubuntu systems:

```bash
sudo dpkg -i openlm_broker_<version>_amd64.deb
# If dpkg reports missing dependencies, resolve them with:
sudo apt-get install -f
```

On RHEL-family systems:

```bash
sudo rpm -ivh openlm_broker_<version>.x86_64.rpm
```

A package installation differs from the tar.gz in 3 ways:

- Files go to a fixed location, **/opt/broker**. Run the configuration scripts from that folder.
- The RPM package sets **JAVA\_HOME** in `settings.sh` for you, taking the first `java` on the `PATH`. On a machine with more than 1 Java runtime, check afterward that it picked the one you intended.
- The package registers and starts the systemd service itself, so you don't run `./broker.sh install`.

What remains is to connect the Broker and add your license managers. See [Connect the Broker to OpenLM SLM or SLMC](#connect-the-broker-to-openlm-slm-or-slmc).

## Connect the Broker to OpenLM SLM or SLMC

A new Broker doesn't yet know which license managers to query or where to send their data. Choose the method that fits the machine:

- On a server without a desktop, use the scripts in the Broker folder: [detect.sh](#configuring-broker-with-detectsh) for an on-premises OpenLM SLM, [auth\_import.sh](#import-an-authorization-file) for SLMC or the Identity Service.
- From any browser on your network, use the [Broker web UI](#configure-the-broker-from-a-browser).
- On a machine with a desktop environment, open the local configuration tool with `sudo ./broker.sh config`.

### Configuring Broker with detect.sh

The `detect.sh` script detects the supported license managers running on the machine and adds their ports to the Broker configuration file. Given the address of your OpenLM SLM, it also adds the connection to it.

> **For proper operation, detect.sh has to be run as root**.

The script behaves as follows:

- Running detect.sh when no configuration file exists creates a default configuration file with the license manager ports that it detects as open on the machine.
- Running detect.sh when a configuration file already exists adds any missing port information to that same file. The original is copied into a **broker.xml.backup** folder beside it, under a timestamped name such as `broker.xml.2026-08-24T153045123`, so repeated runs never overwrite an earlier backup.

Command format:

```bash
sudo ./detect.sh <fileName.xml> [<port>@]<OpenLM SLM host>
```

The second parameter is optional. It adds a connection to an on-premises OpenLM SLM at that host, on port 5015 unless you put a different port in front of the host name.

`detect.sh` works on the file you name and updates it in place. It doesn't merge that file into `broker.xml`. Because the Broker service always reads `broker.xml`, running the script against any other name produces a file that has no effect until you rename it or copy it over `broker.xml`.

For example, to detect the license managers and connect the Broker to the OpenLM SLM at `slm.example.com` on the default port:

```bash
sudo ./detect.sh broker.xml slm.example.com
```

To use a different port, for example 7016 on an older installation:

```bash
sudo ./detect.sh broker.xml 7016@slm.example.com
```

If the scan finds no ports, run it again with `-v` to write detailed logging to the Broker log, for example `sudo ./detect.sh -v broker.xml`.

Restart the Broker afterward so that it reads the new configuration. See [Restart the Broker](#restart-the-broker).

### Import an authorization file

To connect the Broker to SLMC, or to an on-premises OpenLM SLM that uses the Identity Service, import the Broker authorization file with `auth_import.sh`. Generate the file first:

- For SLMC, in the Cloud Portal. See [Automatic mode](https://www.openlm.com/documentation/legacy/slmc/index#automatic-mode).
- For an on-premises OpenLM SLM with the Identity Service, in EasyAdmin. See [Adding the OpenLM SLM](https://www.openlm.com/documentation/legacy/openlm-broker/openlm-broker-webui#adding-the-openlm-slm).

To import it:

1. Copy the authorization `.json` file to the folder where OpenLM Broker is installed.
2. Import it as root:

   ```bash
   sudo ./auth_import.sh <authorization-file>.json
   ```

   The import runs in the background and writes its result to `logs/auth_import_nohup.log` in the Broker folder, not to the terminal. Check that file for the line `Saving broker.xml`.
3. Restart the Broker so that it picks up the credentials. See [Restart the Broker](#restart-the-broker).

`auth_import.sh` writes the credentials into every OpenLM SLM connection already in `broker.xml`, or adds one connection if the file has none. Use it on a Broker that reports to one destination. To make one Broker report to both an on-premises OpenLM SLM and SLMC, add the second connection in the [Broker web UI](https://www.openlm.com/documentation/legacy/openlm-broker/openlm-broker-webui#adding-the-openlm-slm).

### Configure the Broker from a browser

The Broker serves a browser interface on port **5090** by default, unless `webUIPort` is set to `off` in `broker.xml`. No desktop environment is needed. Opening it on the license server itself requires no login. From another computer, you need a short-lived token generated on the license server. See [OpenLM Broker web UI](https://www.openlm.com/documentation/legacy/openlm-broker/openlm-broker-webui) for remote access and for adding OpenLM SLM connections.

### Copy a configuration from another Broker

To configure the same set of ports across many license servers, copy the `broker.xml` from an already-configured Broker machine and import it with `detect.sh`. If a `broker.xml` already exists on the target machine, rename the copied file first:

```bash
sudo ./detect.sh brokerAddon.xml
```

### Restart the Broker

Restart the Broker after you change its configuration:

```bash
sudo ./broker.sh restart
```

On a machine without systemd, `restart` is unavailable. Stop and start the process instead:

```bash
sudo ./broker.sh stop
sudo ./broker.sh start
```

## Broker.sh commands

`broker.sh` accepts the following commands:

| **Command name** | **Description** | **Requires systemd** |
| --- | --- | --- |
| install | Installs OpenLM Broker as a service using "systemctl enable" | Yes |
| uninstall | Deactivates an already installed OpenLM Broker instance from starting as a service | Yes |
| start | Starts the OpenLM Broker service | No |
| stop | Stops the OpenLM Broker service | No |
| restart | Restarts the OpenLM Broker service | Yes |
| status | Displays the current status of the OpenLM Broker service | No |
| config | Opens the local Broker configuration tool | No |

Command format:

```bash
sudo ./broker.sh <command>
```

`broker.sh` checks for systemd and hands the command to the matching script. On a machine without systemd, the 3 commands marked as requiring systemd are unavailable: rather than acting, `broker.sh` prints its usage line and exits. Use `stop` followed by `start` in place of `restart`.

## Upgrading an existing Broker installation

To upgrade a Broker installed from the tar.gz archive:

1. Download the latest version of OpenLM Broker for Unix/Linux from the [Downloads page](https://www.openlm.com/downloads/).
2. Remove the current Broker installation:
   - If using systemd, uninstall the current Broker service:

     ```bash
     sudo ./broker.sh uninstall
     ```
   - If you aren't using systemd, stop the Broker process:

     ```bash
     sudo ./broker.sh stop
     ```
3. Extract the archive (OpenLM\_Broker\_#.#.#.#.tar.gz) to a convenient location.
4. Copy the **broker.xml** and **settings.sh** files from the previous Broker installation folder to the new folder, overwriting if required.
5. Install the Broker service for the new version from the new **openlm-broker** folder:
   - If using systemd, install the service:

     ```bash
     sudo ./broker.sh install
     ```
   - If not using systemd, start the process:

     ```bash
     sudo ./broker.sh start
     ```

Afterward, check that the settings and license servers have stayed the same, in the [Broker web UI](https://www.openlm.com/documentation/legacy/openlm-broker/openlm-broker-webui) or with `sudo ./broker.sh config`. Then confirm that the license managers the Broker monitors still appear in the EasyAdmin **License Servers** widget.

## Uninstall the Broker

Removing the Broker deliberately leaves its configuration behind, so that reinstalling later picks up the same setup. Delete the installation folder by hand if you want a clean removal.

Stop the service and remove it from systemd:

```bash
sudo ./broker.sh uninstall
```

This stops the Broker, disables the service, and deletes its systemd unit files. The Broker folder itself, including `broker.xml` and the logs, stays in place.

On a machine without systemd, `uninstall` is unavailable. Stop the process instead:

```bash
sudo ./broker.sh stop
```

## Connect over HTTPS

When the Broker connects over HTTPS to an OpenLM SLM whose certificate Java doesn't already trust, import the issuing certificate into the keystore of the Java runtime that **JAVA\_HOME** points at. See [Trust the certificate (Linux)](https://www.openlm.com/documentation/legacy/openlm-broker/openlm-broker-ssl-configuration#step-2-trust-the-certificate-linux). On Java 8, the keystore is one level deeper than on Java 11 and higher, at `$JAVA_HOME/jre/lib/security/cacerts`.

## Verify the connection

Open the **License Servers** widget in EasyAdmin. Each license manager the Broker monitors appears there with its status. If a status message points to a problem, see [Troubleshoot OpenLM Broker by EasyAdmin user interface messages](https://www.openlm.com/documentation/legacy/openlm-broker/troubleshoot-openlm-broker-by-easyadmin-user-interface-messages).
