Skip to main content

Installing and Managing Software on Windows and Linux with Swif

Swif provides centralized software management for Windows and Linux devices through its App Catalog and built-in package manager integration. This article explains how managed software installation works, how automatic updates are handled, and what to expect when devices already have manually installed applications.

Need to Deploy Custom Installers or Scripts?

This article covers installing and managing software from Swif's App Catalog using native package managers. If you need to deploy your own custom installers, packages, or scripts — such as internal tools, proprietary software, or apps not available in the catalog — see Installing Custom Software via Swif.

That article walks through uploading EXE, MSI, DEB, RPM, and other package formats, configuring pre/post-install scripts, and setting up validation rules for custom deployments.


Overview

Swif uses platform-native package managers to install, update, and uninstall software on managed devices:

Platform

Package Manager

Management Service

Windows

Chocolatey

Gorilla

Linux

APT, DNF, YUM, Pacman, Zypper, Flatpak, Snap

Linux MDM Server

When you assign an application to a device or device group from the Swif App Catalog, the Swif agent on the device works with the appropriate package manager to install and maintain the software automatically.


How It Works

Step 1: Browse the App Catalog

The Swif App Catalog contains a curated library of pre-verified applications available for Windows and Linux. Each app entry includes:

  • Application name and version — labeled "Managed with Package Manager" for apps maintained by the package manager.

  • Verified badge — indicates that Swif has tested and confirmed successful installation for a specific OS and version.

  • Supported platforms — shows which operating systems the app supports (Windows, Linux, macOS).

To view the catalog, navigate to Software > App Catalog in the Swif admin console.

Step 2: Assign Software to Devices

You can install software in two ways:

  1. Managed Install (Recommended): Add the application to a device or device group's manifest. The Swif agent will automatically install the app and keep it updated.

  2. On-Demand Install: Trigger a one-time installation from the device's Applications tab or via the Commands feature.

Step 3: Automatic Updates

Once an application is managed by Swif, the package manager handles updates automatically:

  • Windows: Chocolatey checks for available upgrades during its daily update cycle. When a newer version is available in the Chocolatey repository, it is installed automatically.

  • Linux: Apps installed via the device's native package manager (e.g., APT, DNF, Pacman) are updated whenever the repository publishes a new version and the system runs its update cycle.

No manual intervention is required — Swif keeps managed applications at the latest available version.


Windows Software Installation

How Managed Installation Works

On Windows, the Swif agent uses Gorilla (Swif's Windows management service) together with Chocolatey to manage applications:

  1. When a device first enrolls, the Swif agent installs Gorilla.

  2. Gorilla installs Chocolatey if it is not already present on the device.

  3. Gorilla retrieves the device's manifest — the list of applications assigned by the admin.

  4. For each app in the manifest, Gorilla uses Chocolatey to install the application silently.

  5. Gorilla periodically checks for updates and applies them automatically.

Validation Rules

Swif uses validation rules to verify whether an application is successfully installed. Supported rule types for Windows include:

  • Registry — Checks whether a specific registry key/value exists.

  • File — Checks whether a file exists at a specified path.

  • Script — Runs a custom script that returns a success or failure exit code.

Custom Windows Applications

If the application you need is not in the catalog, you can create a Custom Application:

  • Chocolatey-based: Specify the Chocolatey package name. Swif handles installation and updates via Chocolatey automatically. The application name must match the package name in the Chocolatey repository.

  • Installer-based: Upload a custom installer (EXE, MSI, or PowerShell script) with optional pre-install and post-install scripts, uninstall scripts, and validation rules.


Linux Software Installation

How Managed Installation Works

On Linux, the Linux MDM Server manages application installations using the device's native package manager. Swif supports the following package managers and formats:

Package Manager

Format

Distributions

APT

DEB

Ubuntu, Debian, Mint

DNF / YUM

RPM

Fedora, RHEL, CentOS, Rocky Linux

Pacman

ARCH

Arch Linux, Manjaro, EndeavourOS

Zypper

RPM

openSUSE

Flatpak

Flatpak

Cross-distribution

Snap

Snap

Cross-distribution

Nix

Nix

NixOS

Package Manager–Based Installation (Recommended)

This is the preferred method. When an app is configured with a package manager source:

  1. Swif adds the necessary repository configuration to the device (if an external repository is required).

  2. The package manager installs the application.

  3. Future updates are handled automatically by the package manager whenever the repository publishes a newer version.

No additional control is required — the package manager keeps the app up to date.

Custom Linux Applications

For applications not available via a package manager, admins can deploy software using:

  • Direct package upload: Upload a DEB, RPM, ARCH, ZIP, or TAR package. Swif deploys it to the device with optional pre-install and post-install scripts.

  • URL-based installation: Provide download URLs per distribution/architecture. Swif downloads and installs the package on the device.

Custom applications support SHA-256 checksum verification to ensure package integrity.


Managing Pre-Existing (User-Installed) Applications

A common scenario is when a user has already installed an application manually (e.g., downloaded from the vendor's website) before the device was enrolled in Swif or before the app was added to the manifest.

What Happens

When Swif assigns a managed installation for an app that is already installed on the device:

  • The package manager checks whether the app is already present. On Windows, Chocolatey checks the Windows registry for the application. On Linux, the package manager checks its own package database.

  • If the app was installed via the package manager: The package manager recognizes it and can manage updates and uninstalls normally.

  • If the app was installed manually (outside the package manager): The behavior depends on the platform:

Scenario

Windows (Chocolatey)

Linux (Native Package Manager)

App exists at the same path

Chocolatey may detect it via registry and skip installation. The app may not be included in automatic updates since Chocolatey did not install it.

The package manager does not recognize the manually installed binary and may install a separate managed copy, or skip if it detects a conflict.

App exists at a different path

Chocolatey installs the managed version alongside the existing one. Both versions may coexist.

The package manager installs the managed version normally.

Managed install succeeds

The app may prompt the user to restart. After restart, the managed version takes over.

The package manager version takes precedence and is managed going forward.

Best Practices for Pre-Existing Applications

  1. Uninstall the manually installed version first before assigning the managed installation. This ensures a clean installation with no conflicts.

  2. Use Swif's pre-install scripts (for Custom Applications) to detect and remove existing manual installations before the managed install begins.

  3. Verify the installation after assigning the app by checking the device's Applications tab in the Swif console. Look for the "Managed-Installed" status.

Note: For catalog applications like 1Password, Swif includes customized recipes with pre-install scripts that automatically detect and cleanly adopt manually installed versions. If you encounter issues with a specific app, contact Swif support.


App Installation Statuses

When you assign software to a device, you can track its progress in the Swif console:

Status

Description

Awaiting Installation

The app has been assigned but not yet installed. The device may be offline or the agent is processing other tasks.

Installing

The package manager is actively installing the application.

Installed

The application was successfully installed and is being managed.

Failed

The installation encountered an error. Check the device logs for details.

Managed-Installed

The app is installed and actively managed by Swif, including automatic updates.


Self-Service App Store

Swif also offers a Self-Service App Store accessible from the Swif Desktop App on the device. Employees can:

  • Browse IT-approved applications.

  • Install approved software on-demand without admin intervention.

  • View already-installed managed applications.

Admins control which apps are available in the self-service store by approving apps from the catalog.


Troubleshooting

App is stuck in "Awaiting Installation"

  • Ensure the device is online and the Swif agent is running.

  • On Windows, verify that Chocolatey is installed: check C:\ProgramData\chocolatey\ for the choco.exe binary.

  • Review the Gorilla logs at C:\Users\<user>\AppData\Local\Gorilla\ for errors.

App installed but not showing as "Managed"

  • If the app was installed manually before Swif, the package manager may not recognize it. Uninstall the manual version and re-trigger the managed install.

  • Check the validation rules in the app configuration to ensure they match the installed app's registry keys or file paths.

Linux app not updating

  • Verify that the Swif repository is correctly configured on the device: check /etc/apt/sources.list.d/ (DEB) or /etc/yum.repos.d/ (RPM).

  • Run a manual package update (sudo apt update or sudo dnf makecache) to check for repository connectivity issues.

Duplicate applications appearing

  • This can occur when a manually installed version coexists with the managed version. Uninstall the manually installed copy and keep only the managed version.


Summary

Feature

Windows

Linux

Package Manager

Chocolatey

APT, DNF, YUM, Pacman, Zypper, Flatpak, Snap, Nix

Automatic Updates

✅ Daily via Chocolatey

✅ Via native package manager

Custom App Support

✅ EXE, MSI, PS1, Chocolatey

✅ DEB, RPM, ARCH, ZIP, TAR, URL

Pre/Post-Install Scripts

Validation Rules

Registry, File, Script

Package manager verification

Verified Badge

✅ Per OS and version

✅ Per OS and version

Self-Service App Store

For questions or to request a new application in the catalog, contact your Swif administrator or reach out to Swif support.


Did this answer your question?