Scroll to navigation

DL-DISTRO(1) dl-distro Manual DL-DISTRO(1)

NAME

dl-distro - Bash script for downloading and verifying OS images.

SYNOPSIS

dl-distro [OPTIONS]

dl-distro -d <DISTRO|JSON_QUERY> [OPTIONS]

DESCRIPTION

dl-distro aims to make downloading and verifying OS images quick and easy.

It uses jq for data retrieval, wget for downloading, gpg for signature verification, and validates checksums with the relevant algorithm.

OPTIONS

Toggle automatic updating of the local JSON file.

Generate a config file with default values.

Specify a distribution by its short name or a JSON query.

Delete a stored GPG key using its GPG key ID.

Display help message containing options and distributions available.

Import a GPG key from a key file.

List the stored GPG keys.

List the supported distributions.

Skip GPG, Minisign, or Signify key fetching and verification.

Download image to specified directory.

Purge ALL the stored data. Includes GPG, Minisign, Signify keys and the JSON file.

Instead of downloading, return an HTTP status for URLs.

Update the locally stored JSON file.

Print dl-distro's current version.

SUPPORTED DISTRIBUTIONS

alma AlmaLinux OS https://almalinux.org
alpine Alpine Linux https://alpinelinux.org
arch Arch Linux https://archlinux.org
cachy CachyOS https://cachyos.org
debian Debian https://debian.org
deepin deepin https://deepin.org
dragora Dragora GNU/Linux-Libre https://dragora.org
endeavour EndeavourOS https://endeavouros.com
fedora Fedora Linux https://fedoraproject.org
ghostbsd GhostBSD https://ghostbsd.org
gparted GParted Live https://gparted.org
guix Guix System https://guix.gnu.org
hyperbola Hyperbola GNU/Linux-libre https://hyperbola.info
kali Kali Linux https://kali.org
mint Linux Mint https://linuxmint.com
mxlinux MX Linux https://mxlinux.org
nix NixOS https://nixos.org
nobara Nobara https://nobaraproject.org
openbsd OpenBSD https://openbsd.org
opensuse openSUSE https://opensuse.org
parabola Parabola GNU/Linux-libre https://parabola.nu
parch Parch GNU/Linux https://parchlinux.com/en
parrot Parrot OS https://parrotsec.org
pop Pop!_OS https://pop.system76.com
proxmox Proxmox https://proxmox.com
pure PureOS https://pureos.net
qubes Qubes OS https://qubes-os.org
rocky Rocky Linux https://rockylinux.org
slackware Slackware Linux http://slackware.com
solus Solus https://getsol.us
tails Tails https://tails.net
tinycore Tiny Core http://tinycorelinux.net
trisquel Trisquel GNU/Linux https://trisquel.info
ubuntu Ubuntu https://ubuntu.com
void Void Linux https://voidlinux.org
whonix Whonix https://whonix.org
zorin Zorin OS https://zorin.com/os

EXAMPLES

Main menu with all distributions. Pick one and choose an image to download.

dl-distro -d debian
Provide a distribution name to skip the main menu. This will prompt you with additional choice menus, if necessary.

dl-distro -d debian.netinst.amd64
You can skip the menus and start a download directly if you provide a JSON query. The names used in the JSON query correspond directly to those in the menus.

dl-distro -d debian.netinst.amd64 -p ~/Downloads
Download and verify the latest Debian network installer amd64 image, saving to the ~/Downloads directory.

FILES

The config directory is $XDG_CONFIG_HOME/dl-distro. If $XDG_CONFIG_HOME is unset, the directory will be $HOME/.config/dl-distro.

dl-distro.conf is used to store dl-distro's config. Below are the variables you can set. Values shown are default values used in the script, please use quotes:

By default, dl-distro will use the $PWD variable if no download path is provided with -p. To always download to a specific path, change this variable.
By default, dl-distro will download the JSON file from the master branch before each run, ensuring always up-to-date data.
Changing to false will disable signature key fetching and verification at script runtime.
Changing to true will enable spider mode at runtime, returning an HTTP status for URL's instead of downloading.
Changing to true will enable manual downloads at runtime, displaying step-by-step instructions for downloading and verifying the image.
hkps://keyserver.ubuntu.com"
Change the keyserver used to fetch GPG keys during runtime.
https://codeberg.org/bashuser30/dl-distro/raw/branch/master/data.json"
Change the URL used when updating the JSON file.

You can also override data in the JSON file by placing it in the config directory. dl-distro will use this file over the one stored in the data directory. NOTE: dl-distro can not update your modified file.

The data directory is $XDG_DATA_HOME/dl-distro. If $XDG_DATA_HOME is unset, the directory will be $HOME/.local/share/dl-distro.

This directory is used to store the GPG keys, Minisign keys, Signify keys and the JSON file.

BUGS

Please report bugs on Codeberg https://codeberg.org/bashuser30/dl-distro/issues.

AUTHORS

bashuser30 <bashuser30@mailbox.org>

December 6, 2025 dl-distro v2.4.9