Installation

Binary Packages

Getting started with dnst is really easy by installing a binary package for either Debian and Ubuntu or for Red Hat Enterprise Linux (RHEL) and compatible systems such as Rocky Linux. Alternatively, you can run dnst with Docker.

You can also build dnst from the source code using Cargo, Rust’s build system and package manager. Cargo lets you run dnst on almost any operating system and CPU architecture. Refer to the Building From Source section to get started.

To install a dnst package, you need the 64-bit version of one of these Debian versions:

  • Debian Bookworm 12

  • Debian Bullseye 11

Packages for the amd64/x86_64 architecture are available for all listed versions. In addition, we offer armhf architecture packages for Debian/Raspbian Bullseye, and arm64 for Buster.

First update the apt package index:

sudo apt update

Then install packages to allow apt to use a repository over HTTPS:

sudo apt install \
  ca-certificates \
  curl \
  gnupg \
  lsb-release

Add the GPG key from NLnet Labs:

curl -fsSL https://packages.nlnetlabs.nl/aptkey.asc | sudo gpg --dearmor -o /usr/share/keyrings/nlnetlabs-archive-keyring.gpg

Now, use the following command to set up the main repository:

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/nlnetlabs-archive-keyring.gpg] https://packages.nlnetlabs.nl/linux/debian \
$(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/nlnetlabs.list > /dev/null

Update the apt package index once more:

sudo apt update

You can now install dnst with:

sudo apt install dnst

Updating

To update an existing dnst installation, first update the repository using:

sudo apt update

You can use this command to get an overview of the available versions:

sudo apt policy dnst

You can upgrade an existing dnst installation to the latest version using:

sudo apt --only-upgrade install dnst

Installing Specific Versions

Before every new release of dnst, one or more release candidates are provided for testing through every installation method. You can also install a specific version, if needed.

If you would like to try out release candidates of dnst you can add the proposed repository to the existing main repository described earlier.

Assuming you already have followed the steps to install regular releases, run this command to add the additional repository:

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/nlnetlabs-archive-keyring.gpg] https://packages.nlnetlabs.nl/linux/debian \
$(lsb_release -cs)-proposed main" | sudo tee /etc/apt/sources.list.d/nlnetlabs-proposed.list > /dev/null

Make sure to update the apt package index:

sudo apt update

You can now use this command to get an overview of the available versions:

sudo apt policy dnst

You can install a specific version using <package name>=<version>, e.g.:

sudo apt install dnst=0.1.0~rc1-1bookworm

Replacing LDNS with dnst

To replace the installed ldns examples with dnst in ldns emulation mode, we provide the dnst-ldnsutils package. When installing this package, dnst will automatically get installed alongside it, existing ldns-utils will be uninstalled, and supported ldns examples get replaced with dnst.

To install dnst-ldnsutils, simply follow the steps above to install dnst, but install dnst-ldnsutils (e.g. sudo apt install dnst-ldnsutils) instead of dnst.