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:
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.
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:
When a device first enrolls, the Swif agent installs Gorilla.
Gorilla installs Chocolatey if it is not already present on the device.
Gorilla retrieves the device's manifest — the list of applications assigned by the admin.
For each app in the manifest, Gorilla uses Chocolatey to install the application silently.
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:
Swif adds the necessary repository configuration to the device (if an external repository is required).
The package manager installs the application.
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
Uninstall the manually installed version first before assigning the managed installation. This ensures a clean installation with no conflicts.
Use Swif's pre-install scripts (for Custom Applications) to detect and remove existing manual installations before the managed install begins.
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 thechoco.exebinary.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 updateorsudo 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.
