---
title: Install Workstation Agent on Linux
description: Install the Workstation Agent for OpenLM Platform on Linux from a DEB or RPM package or a tar.gz archive, and connect it with its authorization file.
product: OpenLM Platform
---

To collect application usage from Linux machines, install the Workstation Agent on each machine and connect it to OpenLM Platform with its authorization file. The agent for Linux comes as a DEB package, an RPM package, and a tar.gz archive, for 64-bit x86 machines.

Each one installs the agent in `/opt/openlmagent` and sets it up as a `systemd` user service, `openlmagent`, for each user with a home folder in `/home`. The agent runs while the user is signed in, and starts again at the user's next sign-in.

## Before you begin

Confirm these prerequisites:

- **The authorization file**: generate it for a client of type **Agent** in **Identity**, as described in [Authorize components](https://www.openlm.com/documentation/cloud/getting-started/authorize-components). The agent accepts the plain file and the file of an **Encrypted authorization client**. Identity names the file `agent-authorization.json`.
- **A 64-bit x86 machine**: it meets the [system requirements](https://www.openlm.com/documentation/cloud/deployment-operations/system-requirements/?component=workstation-agent), has `sudo` rights, and has outbound HTTPS (port 443) to your OpenLM Platform.
- **The ICU library, `libicu`**: Ubuntu includes it. On Rocky Linux and other distributions of the Red Hat Enterprise Linux family, install it with `sudo dnf install libicu`. Without it, the agent stops at every start, as described in [Why does the agent keep restarting on Linux?](https://www.openlm.com/documentation/cloud/getting-started/install-workstation-agent/troubleshooting#why-does-the-agent-keep-restarting-on-linux)
- **The X11 screen saver library**: the agent reads the idle time of the user's X11 desktop session through it. The RPM package installs it, `libXScrnSaver`. With the DEB package or the tar.gz archive, install `libxss1` on Ubuntu or Debian.
- **`systemd` with user services**: required. You also need `rsync` to upgrade from the tar.gz archive.

Download the package or archive for the machine from the [Downloads page](https://www.openlm.com/downloads/).

## Install the DEB package

To install the Workstation Agent on Ubuntu or Debian:

1. Copy the package, `openlm-agent_<version>_amd64.deb`, to the machine.

2. Install it:

   ```bash
   sudo apt install ./openlm-agent_<version>_amd64.deb
   ```

   The installation starts the agent for each user with a home folder in `/home`, and reports each one:

   ```console
   --- Processing user: <user> ---
   ✅ Success: openlmagent is ACTIVE for <user>
   ```

   Without an `openlm` account on the machine, the output also has a line `chown: invalid user: 'openlm:openlm'` for each file. You can ignore these lines.

3. Connect the agent to your OpenLM Platform, as described in [Connect the agent](#connect-the-agent).

## Install the RPM package

To install the Workstation Agent on Rocky Linux, Red Hat Enterprise Linux, or another distribution of that family:

1. Install the ICU library:

   ```bash
   sudo dnf install libicu
   ```

2. Copy the package, `openlm_agent-<version>.x86_64.rpm`, to the machine.

3. Install the package with `dnf`:

   ```bash
   sudo dnf install ./openlm_agent-<version>.x86_64.rpm
   ```

   `dnf` also installs the libraries the agent needs. The installation starts the agent for each user with a home folder in `/home`, and reports `✅ Success: openlmagent is ACTIVE for <user>` for each one. Without an `openlm` account on the machine, the output also has the lines `warning: user openlm does not exist - using root` and `warning: group openlm does not exist - using root` for each file. You can ignore these lines.

4. Connect the agent to your OpenLM Platform, as described in [Connect the agent](#connect-the-agent).

## Install from the tar.gz archive

Use the tar.gz archive on other distributions, or to install without a package manager. The installation script copies the authorization file from the archive folder, so you add your file before you run it.

To install the Workstation Agent from the tar.gz archive:

1. Extract the archive, `openlm_agent_<version>.tar.gz`, into a new, empty folder. The archive has no folder of its own.

   ```bash
   mkdir openlm-agent
   tar -xzf openlm_agent_<version>.tar.gz -C openlm-agent
   ```

2. Replace `agent-authorization.json` in that folder with the authorization file you generated:

   ```bash
   cp <path-to-file>/agent-authorization.json openlm-agent/agent-authorization.json
   ```

   Replace `<path-to-file>` with the folder that holds your authorization file.

3. Run the installation script from the folder:

   ```bash
   cd openlm-agent
   sudo bash install.sh
   ```

   The script copies the agent to `/opt/openlmagent`, starts it for each user with a home folder in `/home`, and reports `✅ Success: openlmagent is ACTIVE for <user>` for each one. The agent connects to your OpenLM Platform at its first start.

4. Check the agent, as described in [Check the agent](#check-the-agent).

## Connect the agent

The DEB and RPM packages install a placeholder authorization file in `/opt/openlmagent`, so the Workstation Agent can't connect to your OpenLM Platform until you replace it. The agent reads the file when it starts.

To connect the agent:

1. Copy your authorization file over the placeholder:

   ```bash
   sudo cp agent-authorization.json /opt/openlmagent/agent-authorization.json
   ```

2. Restart the agent of each signed-in user. As that user, run:

   ```bash
   systemctl --user restart openlmagent
   ```

   Users who sign in later start the agent with the new file.

3. Check the agent, as described in [Check the agent](#check-the-agent).

## Connect to a self-hosted OpenLM Platform

For OpenLM Platform in the cloud, the authorization file gives the agent the address to connect to. For a self-hosted OpenLM Platform, also set the address of its Agents Hub in `settings.json`, in `/opt/openlmagent`:

1. Open `/opt/openlmagent/settings.json` with `sudo`, and set `agentsHub`:

   ```json
   {
     "agentsHub": {
       "address": "<your-openlm-server-host>",
       "port": 443,
       "useSSL": true
     }
   }
   ```

   Replace `<your-openlm-server-host>` with the host name of your self-hosted OpenLM Platform, without `https://` or a path. Keep `port` and `useSSL` unless your OpenLM Platform accepts connections on another port or without SSL.

2. Restart the agent of each signed-in user. As that user, run:

   ```bash
   systemctl --user restart openlmagent
   ```

3. Check the agent, as described in [Check the agent](#check-the-agent).

If the file you generated is for an OpenLM Platform in the cloud, the agent ignores `agentsHub` and connects to the address in the authorization file.

## Add a user after the installation

The installation sets the Workstation Agent up only for the users who have a home folder in `/home` at that time. To set it up for all users, including the users you add later, run:

```bash
sudo bash /opt/openlmagent/start-logged-in.sh
```

The script turns on the agent for every user, current and future, and starts it now for the users who are signed in. A user who isn't signed in gets the agent at the next sign-in. If the agent of a new user keeps restarting, see [Why does the agent keep restarting for a new user?](https://www.openlm.com/documentation/cloud/getting-started/install-workstation-agent/troubleshooting#why-does-the-agent-keep-restarting-for-a-new-user)

## Check the agent

After the installation, check that the Workstation Agent runs and reports to OpenLM Platform:

1. As a signed-in user, check that the agent runs:

   ```bash
   systemctl --user status openlmagent
   ```

   The status shows `active (running)`. If it shows `activating (auto-restart)`, see [Why does the agent keep restarting on Linux?](https://www.openlm.com/documentation/cloud/getting-started/install-workstation-agent/troubleshooting#why-does-the-agent-keep-restarting-on-linux)

2. Check that the agent connected. Its log, `/opt/openlmagent/logs/<user>/Agent.ALL.<yyyymmdd>.log`, has a line with `"Connected"` and the address of your OpenLM Platform:

   ```console
   $ grep Connected /opt/openlmagent/logs/$USER/Agent.ALL.*.log
   [INF] "AgentConnectionsHubClient"; SENDING: Agent details: https://<your-openlm-platform-address>/api/agents-hub/AgentsHub, "Connected", <connection-id>
   ```

   `<your-openlm-platform-address>` is the address of your OpenLM Platform, and `<connection-id>` is the ID of the connection.

3. In OpenLM Platform, select **Navigation**, then **Agents**, then **Agent Activity**.

4. Select the **Refresh** icon.

5. Find the row with the host name of the machine.

   Check that **Online** has a check mark while the agent is connected.

For more about this list, see [Check the agent in Agent Activity](https://www.openlm.com/documentation/cloud/getting-started/install-workstation-agent/index#check-the-agent-in-agent-activity). If the agent doesn't appear, see [Why doesn't the agent appear in Agent Activity?](https://www.openlm.com/documentation/cloud/getting-started/install-workstation-agent/troubleshooting#why-doesnt-the-agent-appear-in-agent-activity)

## Open the Personal Dashboard

Users open their [Personal Dashboard](https://www.openlm.com/documentation/cloud/users/personal-dashboard/) from the Workstation Agent. The installation opens it for each user who is signed in to a desktop session. For the other users, the output has the line `❌ Skip Opening Personal Dashboard for <user> (No active GUI session found)`.

To open the Personal Dashboard later, run this command as the user, in their desktop session:

```bash
/opt/openlmagent/OpenLM.Agent.Linux --signin
```

The dashboard opens in the default browser. Users sign in with their account in Identity, as described in the [prerequisites of the Personal Dashboard](https://www.openlm.com/documentation/cloud/users/personal-dashboard/#before-you-begin). If the dashboard doesn't open, see [Why doesn't the Personal Dashboard open?](https://www.openlm.com/documentation/cloud/getting-started/install-workstation-agent/troubleshooting#why-doesnt-the-personal-dashboard-open)

:::info[Next step]
The agent reports the applications that OpenLM Platform asks it to monitor. To select them, open **Navigation**, select **Agents**, then **Process Manager**, and add the processes of your licensed applications, as described in [Process Manager](https://www.openlm.com/documentation/cloud/automations/process-manager/).

After that, continue the setup with [Install the Directory Synchronization Agent (DSA)](https://www.openlm.com/documentation/cloud/getting-started/install-dsa) to synchronize user and group data from your directories.
:::
