qud
is a command-line tool that automatically detects and updates various package managers across Linux, Windows,
macOS, and more.
Latest Version: v1.5.1
- Features
- Supported Package Managers
- Installation
- Usage
- Command-Line Options
- Examples
- How It Works
- Customization & Internals
- Contributing
- License
- Multi-Package Manager Support – Detects and updates various package managers.
- Automated Updates – Runs in non-interactive mode for unattended updates.
- Interactive Ordering – Reorder updates interactively.
- Exclusions – Exclude specific packages or entire package managers.
- Custom Executable Overrides – Specify alternative package manager paths.
- Extra Flags – Pass custom flags to update commands.
- Dry Run Mode – Preview update commands before execution.
- Verbose Logging – Detailed output for debugging.
Linux: pacman
, yay
, apt
, apt-get
, dnf
, zypper
, snap
, flatpak
, xbps-install
, apk
, emerge
,
guix
, nix
, yum
, eopkg
, cave
, sbopkg
, scratch
Windows: choco
, scoop
, winget
, Windows
General/Other: rustup
, brew
, port
, pkg
, cargo
, npm
, pip
, composer
, gem
, conda
, poetry
,
nuget
, asdf
, vcpkg
, conan
, stack
, opam
, mix
, sdkman
, gvm
, pnpm
, yarn
, maven
, go
git clone https://github.com/barely-a-dev/qud.git
cd qud
cargo build --release
cp ./target/release/qud /usr/bin/qud
sudo pacman -U qud-<version>-x86_64.pkg.tar.zst
sudo apt install ./qud_v1.5.1_amd64.deb
Run qud
:
qud [options]
It will:
- Detect available package managers.
- Apply configuration based on options.
- Execute or print (in dry-run mode) update commands.
Option | Alias | Description |
---|---|---|
--dry |
-d |
Print update commands without executing. |
--excl <s> |
-e |
Exclude a package (pm::pkg ) or a package manager (pm ). Repeatable. |
--auto |
-a |
Run updates in non-interactive mode. |
--verbose |
-v |
Enable detailed logging. |
--list |
-l |
List detected package managers without updating. |
--only <pm> |
-o |
Update only the specified package manager(s). Repeatable. |
--spec <s> |
-s |
Override package manager executable (pm::/path/to/executable ). |
--ext <s> |
-E |
Add extra flags (pm::"<flags>" ). |
--ord [s] |
-O |
Set update order (e.g., pm1,pm2,pm3 ). Interactive mode if no value provided. |
--help |
-h |
Display help. |
--version |
-V |
Show version. |
--self-update |
-S |
Update qud itself. |
--noconfirm |
-n |
Do not confirm before updating. Does not stop package managers from prompting, only qud. |
qud --dry
qud --excl apt::vim # Exclude vim from apt
qud --excl pacman # Exclude pacman entirely
qud --auto
qud --only apt --only yum
qud --spec pacman::/custom/path/to/pacman
qud --ext 'apt::"--fix-missing"'
qud --ord apt,yum,brew
For interactive ordering:
qud --ord
- Detection: Scans
PATH
for package manager executables usingwalkdir
. - Configuration: Processes command-line arguments for exclusions, overrides, and order.
- Execution:
- Skips excluded package managers or packages.
- Constructs appropriate update commands.
- Uses
sudo
if required. - Prints commands in dry-run mode or executes them.
- Reordering:
- Uses provided order if specified (
--ord pm1,pm2
). - Defaults to interactive sorting if no order is specified.
- Uses provided order if specified (
- Executable Detection: Uses
PATH
and file traversal. - Per-Package Manager Logic: Defines update routines per package manager.
- Exclusions & Overrides: Supports package-specific and manager-wide exclusions.
- Command Generation: Uses Rust’s
Command
API for structured execution.
Contributions, bug reports, and feature requests are welcome!
Submit issues or pull requests on GitHub.
qud
is licensed under the GPL 3.0.
v1.5.1
For assistance, visit GitHub. Happy updating!