Update Packages
Soar keeps your installed packages current with a single command family. This guide covers every update operation, the available options, and how Soar determines and applies new versions.
Quick Start
Update all installed packages to their latest versions:
soar updateUpdate specific packages by name:
soar update <package1> <package2>For example, update 7z and bat together:
soar update 7z batUpdate Options
The update command supports the following options:
| Option | Description |
|---|---|
--ask | Prompt for confirmation before updating each package |
--keep | Keep the current version (only refresh metadata) |
--no-verify | Skip checksum and signature verification |
Ask for Confirmation
Use --ask to review each package before it is updated:
soar update --ask
soar update <package> --askSoar prompts for each package update so you can approve or skip it.
Keep Current Version
Use --keep to refresh package metadata without moving to a newer version:
soar update <package> --keepThis updates the package database entry but maintains the currently installed version. It is useful for refreshing package information, re-verifying installations, and testing without version changes.
Skip Verification
Use --no-verify to skip signature and checksum verification during updates:
soar update <package> --no-verifySecurity risk
Skipping verification exposes you to potentially compromised updates. Only use it with sources you trust.
Version Determination
Repository Packages
For packages installed from repositories, Soar determines the latest version from the package database:
soar update batThis updates bat to the latest version available in the repository it was installed from.
Local Packages
Packages installed from URLs retain their installation specifications. Updates check for newer versions at the same URL or based on version detection:
soar update https://example.com/app.AppImageProfile Handling
The update process respects the original installation profile. If a package was installed with a specific profile, updates maintain that profile setting.
WARNING
The profile flag has no effect on package installation path. Updates use the profile that was active at the time of installation.
Cross-Repository Update Behavior
A package always updates from the same repository it was installed from. Even if a newer version exists in a different repository, Soar will not use it.
WARNING
The update process ignores updates from any repository other than the one the package was installed from.
To switch a package to a different repository, remove it and add it again from the new source:
# Remove from the original repository
soar remove bat
# Install from the new repository
soar add bat:soarpkgsFuture updates then follow the new repository:
# Installed from 'official', so only 'official' is checked for updates
soar update batUpdate Behavior
What Happens During an Update
When you update a package, Soar:
- Checks for newer versions in the source repository
- Verifies signatures and checksums (unless
--no-verifyis used) - Downloads the new version
- Backs up the current installation
- Extracts the new version
- Updates symlinks and database entries
- Removes the old version (if successful)
If installation fails at any step, soar restores the previous version from the backup, as described below.
Backup and Recovery
Soar maintains a backup during each update. If an update fails, the previous version remains intact:
soar update batBatch Updates
Update multiple packages in one command, optionally with confirmation:
soar update bat ripgrep fd
soar update --ask bat ripgrep fdBest Practices
Keep packages up to date for security fixes and new features:
soar updateReview updates before they apply with --ask:
soar update --askVerify package sources before updating:
soar info <package>For critical applications, back up your data before updating:
soar update --ask <critical-app>Update specific packages when you are concerned about compatibility:
soar update <package1> <package2>Scenarios
Update All Packages
soar updateUpdates all installed packages to their latest versions from their original repositories.
Update with Confirmation
soar update --askReview each package update before proceeding.
Update a Specific Package
soar update ripgrepUpdates only the ripgrep package.
Refresh Metadata Without Updating
soar update --keepUpdates package metadata in the database without changing installed versions.
Move a Package to a Different Repository
# Current setup uses the 'official' repository
soar remove bat
# Switch to the 'soarpkgs' repository
soar add bat:soarpkgs
# Future updates use 'soarpkgs'
soar update batTroubleshooting
Update Fails with a Signature Error
Verify the package source is trusted, and only skip verification when you are certain:
soar info <package>
soar update --no-verify <package> # Only if the source is trustedUpdate Is Stuck or Slow
Check your network connection and repository status:
soar sync
soar update <package>Version Did Not Change
Confirm the package actually has a newer version available:
soar query <package>Cannot Update from a Different Repository
This is by design. Remove the package and reinstall it from the new repository:
soar remove <package>
soar add <package>:<new-repo>For more help, see Health Check.