Wrapper around xdeb and xbps-* featuring a package updater
Find a file
2026-03-28 00:33:41 +01:00
completions init 2026-03-28 00:33:41 +01:00
install.sh init 2026-03-28 00:33:41 +01:00
LICENSE init 2026-03-28 00:33:41 +01:00
README.md init 2026-03-28 00:33:41 +01:00
xdeb-update init 2026-03-28 00:33:41 +01:00

xdeb-update

Fetch .deb packages from APT repositories and install them on Void Linux via xdeb.

Rather than relying on manually downloading .deb files, xdeb-update reimplements APT repository metadata fetching to automatically track, download, verify, convert, and install packages — keeping everything up to date with a single command.

Features

  • APT repositories — parse Packages.gz indices from standard APT repos (e.g. VS Code, Spotify, Mullvad)
  • Flat repositories — support OBS-style repos with Packages.gz at the root (e.g. LibreWolf)
  • GitHub Releases — download .deb assets from the latest release, with automatic architecture detection
  • Direct downloads — handle direct URLs with version detection from redirects (e.g. Discord)
  • SHA256 verification for packages from APT indices
  • Architecture detection — automatically selects the right .deb for your system (amd64, arm64, armhf, i386)
  • Desktop integration fixes — patches invalid .desktop files, refreshes icon/menu caches, and symlinks binaries into PATH
  • Version tracking — only downloads when a new version is available

Dependencies

  • curl, awk, xbps-create, xbps-rindex
  • xdeb — the .deb to .xbps converter
  • sudo or doas for installation

Installation

sudo ./install.sh

This installs xdeb-update to /usr/local/bin/, creates the system directories, and sets up bash completion.

Usage

xdeb-update [options] [command] [package]

Commands

Command Description
update [pkg] Check for updates and install (default)
check [pkg] Check for updates without installing
uninstall <pkg> Uninstall a package, its symlinks, and version state
list List configured packages and stored versions
seed Seed version state from existing binpkgs
clean Clear cached index files

Options

Option Description
-f, --force Force re-download and reinstall even if up to date
-h, --help Show help

Examples

xdeb-update                    # Update all packages
xdeb-update check              # Check for available updates
xdeb-update update discord     # Update only Discord
xdeb-update -f update code     # Force reinstall VS Code
xdeb-update seed               # Seed state from existing binpkgs

Configuration

On first run, a default config is created at /etc/xdeb-update/sources.conf. Edit it to add or remove packages.

Source types

# Standard APT repository
apt <name> <repo-url> <suite> <component> [deb-pkg-name] [xdeb-flags]

# Flat repository (e.g. OBS)
flat <name> <repo-url> [deb-pkg-name] [xdeb-flags]

# GitHub Releases
github <name> <owner/repo> [asset-pattern] [xdeb-flags]

# Direct download URL
direct <name> <url> [xdeb-flags]

Example sources.conf

# VS Code
apt  code  https://packages.microsoft.com/repos/code  stable  main

# LibreWolf (OBS flat repo)
flat  librewolf  https://download.opensuse.org/repositories/home:/bgstack15:/aftermozilla/Debian_12

# LocalSend from GitHub
github  localsend  localsend/localsend

# Discord (direct download)
direct  discord  https://discord.com/api/download?platform=linux&format=deb

Environment Variables

Variable Default Description
XDEB_BIN /usr/local/bin/xdeb Path to xdeb binary
XDEB_PKGROOT /var/cache/xdeb xdeb working directory
DEB_DIR /var/cache/xdeb-update/debs Where .deb files are saved

File Locations

Path Purpose
/etc/xdeb-update/sources.conf Package source configuration
/var/lib/xdeb-update/versions Tracked version state
/var/cache/xdeb-update/ Cached index files and downloaded .deb files

License

See LICENSE.