How to Install Nala on Debian (13, 12, 11)

Last updated Friday, March 13, 2026 8:53 am 10 min read

APT already works, but reading a large package transaction or undoing one later is easier when the frontend shows clear changes and keeps its own history. That makes it useful to install Nala on Debian if you want cleaner upgrades, parallel downloads, and rollback history on Debian 13, 12, or 11 without replacing APT itself.

Debian 13 and Debian 12 ship Nala in their default APT sources. Debian 11 needs the Volian repository instead, and Debian 12 can use that same repository when you want Nala 0.16.x before Bookworm’s default package catches up.

Install Nala on Debian

The main choice is simple: use Debian’s own package sources on Debian 12 and 13, or use Volian on Debian 11.

MethodChannelDebian VersionUpdatesBest For
Default repositoriesDebian PackagesDebian 12, 13Automatic through APTMost Debian users
Volian repositoryVolian Nala wikiDebian 11, 12, 13Automatic through APTDebian 11 or Debian 12 users who want Nala 0.16.x

Default APT sources are the right choice on Debian 12 and Debian 13. Use Volian when you need Nala on Debian 11, or when you specifically want the newer upstream package on Debian 12 before Debian catches up.

Debian 11 never shipped Nala in its default package sources. If you are ready to leave Bullseye behind, upgrade Debian 11 to Debian 12 and you can install Nala directly from Debian’s own repositories.

Update Debian before installing Nala

Refresh the package index and install pending upgrades before you add anything new.

sudo apt update && sudo apt upgrade -y

These commands use sudo for tasks that need root privileges. If your account is not in the sudoers file yet, follow the guide on how to add a user to sudoers on Debian.

The -y flag accepts APT’s confirmation prompt automatically, which keeps the install and removal commands consistent through the rest of the guide.

Install Nala from Debian’s default repositories

Debian 12 and Debian 13 can install Nala directly from their standard package sources.

sudo apt install -y nala

Check the installed version to confirm the package is available and the command is in your path.

nala --version

Expected output on Debian 13:

nala 0.16.0

Debian 12 currently reports nala 0.12.2. Debian 13 reports nala 0.16.0, and both builds support the day-to-day commands covered here.

Install Nala from the Volian repository

Debian 11 needs the Volian repository because Bullseye never shipped Nala. Debian 12 can also use this path to jump from Nala 0.12.2 to 0.16.0, while Debian 13 usually already ships the same 0.16.0 build in trixie.

Install wget for the helper-package downloads and ca-certificates so APT trusts the HTTPS repository on minimal Debian installs.

sudo apt install -y wget ca-certificates

The helper packages are downloaded with wget. The wget command examples guide covers alternate save locations and resume flags if you want to customize the download step.

Download the Volian helper packages and install them with APT so the repository file and scoped keyring land in the right places.

wget -P /tmp https://deb.volian.org/volian/pool/main/v/volian-archive/volian-archive-nala_0.3.1_all.deb
wget -P /tmp https://deb.volian.org/volian/pool/main/v/volian-archive/volian-archive-keyring_0.3.1_all.deb
sudo apt install -y /tmp/volian-archive-nala_0.3.1_all.deb /tmp/volian-archive-keyring_0.3.1_all.deb

That helper-package step creates /etc/apt/sources.list.d/volian-archive-nala-unstable.sources and stores the signing key in /usr/share/keyrings/volian-archive-scar-unstable.gpg.

Read the generated source file once so you can confirm the repo uses DEB822 format and a dedicated keyring.

cat /etc/apt/sources.list.d/volian-archive-nala-unstable.sources

Expected output:

Types: deb deb-src
URIs: https://deb.volian.org/volian/
Suites: nala
Components: main
Signed-By: /usr/share/keyrings/volian-archive-scar-unstable.gpg

The Signed-By line keeps the Volian key scoped to this repository instead of trusting it for every package source on the system.

Refresh APT so Debian pulls the Volian metadata into the package cache.

sudo apt update

Expected output includes the new Volian source lines:

Get:3 https://deb.volian.org/volian nala InRelease [35.1 kB]
Get:4 https://deb.volian.org/volian nala/main Sources [3,228 B]
Get:5 https://deb.volian.org/volian nala/main all Packages [16.5 kB]
Get:6 https://deb.volian.org/volian nala/main amd64 Packages [17.3 kB]

Confirm that nala now has a candidate version from Volian before you install it.

apt-cache policy nala

Expected output on Debian 11:

nala:
  Installed: (none)
  Candidate: 0.16.0
  Version table:
     0.16.0 990
        100 https://deb.volian.org/volian nala/main amd64 Packages
        100 https://deb.volian.org/volian nala/main all Packages

Bookworm switches to Volian’s newer 0.16.0 candidate here. Trixie can still show Debian’s own 0.16.0 package alongside Volian, which is why Debian 13 usually has no practical reason to add the extra repository.

Debian 12 can install Nala normally once the Volian repository is active. Debian 13 can do the same, but the installed version usually matches the default trixie package.

sudo apt install -y nala

Debian 11 needs the -t nala target release so APT also pulls the newer Python dependencies from Volian instead of Bullseye’s older packages.

sudo apt install -y -t nala nala

The -t nala flag tells APT to prefer packages from Volian’s nala suite for this install, which resolves the newer Python dependency chain Bullseye lacks in its default sources.

Verify the installed Nala version after either Volian install path.

nala --version

Expected output:

nala 0.16.0

Use Common Nala Commands on Debian

Nala keeps the same package names and the same repositories as APT, so the commands feel familiar right away. The difference is the cleaner output, the download progress view, and the transaction history once you start using it for package changes.

Refresh package lists with Nala

Use Nala’s update command any time you want to sync package metadata from your configured repositories.

sudo nala update

Upgrade packages with Nala

Run Nala’s upgrade command when you want a full package-upgrade summary before anything changes.

sudo nala upgrade

Install and remove packages with Nala

Package installs and removals use the same names APT expects, so you can switch commands without changing how you think about the package database.

sudo nala install <package-name>

The package names are the same ones you would use with APT, so guides such as install htop on Debian or install Git on Debian translate directly to nala install.

Use remove when you want to keep configuration files, or purge when you want the package and its config files gone.

sudo nala remove <package-name>
sudo nala purge <package-name>
sudo nala autoremove

Search and inspect packages with Nala

Use search when you only know part of a package name, and use show when you want the package description, dependencies, and current version details.

nala search <keyword>
nala show <package-name>

Rank faster mirrors with Nala Fetch

nala fetch benchmarks mirrors and lets you pick the ones you want to keep. It is optional, and Nala still works with Debian’s current mirror configuration if you skip it.

sudo nala fetch

The prompt is interactive, so choose a few low-latency mirrors and press Enter to save them. Faster mirrors help most when you handle larger upgrades or repeat installs on the same machine.

Review Nala transaction history

Nala records the package changes that Nala itself performs, which makes it easier to trace a bad upgrade or roll back a test install.

nala history
sudo nala history undo <ID>
sudo nala history redo <ID>

A fresh install can still report Error: No history exists. until you finish your first Nala transaction. Once you install, remove, or upgrade something with Nala, the command starts listing numbered history entries you can undo or redo.

Troubleshoot Nala on Debian

Most Nala problems on Debian come down to missing repository metadata, Bullseye dependency gaps, or optional mirror selection issues.

Fix Debian 11 dependency conflicts for Nala

Bullseye’s default Python packages are too old for the current Nala build, so APT can fail if you forget to target Volian’s nala suite.

The following packages have unmet dependencies:
 nala : Depends: python3-httpx (>= 0.17.0) but 0.16.1-1 is to be installed

Retry the install with the Volian target release so APT pulls the dependency chain from the same repository.

sudo apt install -y -t nala nala

Confirm the candidate still points at Volian before you retry if you want to rule out a broken repository configuration.

apt-cache policy nala

Expected output:

nala:
  Installed: (none)
  Candidate: 0.16.0
  Version table:
     0.16.0 990
        100 https://deb.volian.org/volian nala/main amd64 Packages
        100 https://deb.volian.org/volian nala/main all Packages

Fix Nala Fetch mirror timeouts on Debian

Mirror ranking is optional, so start by checking whether Debian’s mirror hostname resolves cleanly before you spend time chasing a fetch failure.

getent hosts deb.debian.org | head -n 2

Expected output:

2a04:4e42::644 debian.map.fastlydns.net deb.debian.org
2a04:4e42:200::644 debian.map.fastlydns.net deb.debian.org

IPv4 results are fine here too, and the exact addresses can differ between networks. The important part is that deb.debian.org resolves cleanly before you blame nala fetch.

If name resolution works, you can skip nala fetch and keep Debian’s current mirrors. Nala still updates and installs packages normally without a custom mirror list.

Fix "Unable to locate package nala" on Debian 11

That error means Bullseye is still looking only at its default package sources, where Nala never existed.

E: Unable to locate package nala

Add the Volian helper packages, refresh APT, and then install Nala with the Bullseye-specific target release.

wget -P /tmp https://deb.volian.org/volian/pool/main/v/volian-archive/volian-archive-nala_0.3.1_all.deb
wget -P /tmp https://deb.volian.org/volian/pool/main/v/volian-archive/volian-archive-keyring_0.3.1_all.deb
sudo apt install -y /tmp/volian-archive-nala_0.3.1_all.deb /tmp/volian-archive-keyring_0.3.1_all.deb
sudo apt update
sudo apt install -y -t nala nala

Remove Nala from Debian

Remove the package first, then remove the Volian repository only if you added it for Debian 11 or for newer upstream builds.

Remove the Nala package on Debian

APT removes the Nala package cleanly, and autoremove clears the Python dependencies that came in with it.

sudo apt remove -y nala
sudo apt autoremove -y

apt autoremove can also remove Python support packages that were pulled in with Nala on a clean system. If you use libraries such as python3-apt or python3-debian in your own scripts, drop the trailing -y once so you can review the package list before confirming it.

Check the package state after removal.

apt-cache policy nala

Expected output on Debian 13 after removing the package:

nala:
  Installed: (none)
  Candidate: 0.16.0
  Version table:
     0.16.0 500
        500 http://deb.debian.org/debian trixie/main amd64 Packages
        100 /var/lib/dpkg/status

Debian 12 shows the same layout with Candidate: 0.12.2. If Volian is still enabled on Debian 11, the candidate remains available until you purge the helper packages in the next step.

Remove the Volian repository on Debian

Purge the helper packages if you added Volian, because that removes the DEB822 source file and the scoped keyring together.

sudo apt purge -y volian-archive-nala volian-archive-keyring
sudo apt autoremove -y

Verify that the Volian source and keyring are gone.

ls /etc/apt/sources.list.d/volian* /usr/share/keyrings/volian* 2>/dev/null || echo "No Volian files remain"

Expected output:

No Volian files remain

Refresh APT once more and confirm Bullseye no longer has a repository candidate for Nala.

sudo apt update
apt-cache policy nala

Expected output on Debian 11 after removing Volian:

nala:
  Installed: (none)
  Candidate: (none)
  Version table:
     0.16.0 -1
        100 /var/lib/dpkg/status

Remove Nala history and mirror data on Debian

Nala can leave a history file behind after you use it for real package transactions, so remove that directory only if you want a full cleanup.

Deleting /var/lib/nala/ permanently removes Nala’s history and any mirror choices you saved with nala fetch.

sudo rm -rf /var/lib/nala/

Verify that the history directory is gone.

sudo test ! -e /var/lib/nala && echo "/var/lib/nala removed"

Expected output:

/var/lib/nala removed

Nala on Debian FAQ

Should Debian use the default repositories or Volian for Nala?

Debian 11 needs Volian because Bullseye never shipped nala. Debian 12 can use either path, but Volian is only worth it when you specifically want Nala 0.16.x instead of Bookworm’s default 0.12.2. Debian 13 should usually stay with the default repositories because trixie already ships Nala 0.16.0.

Does Nala replace APT on Debian?

No. Nala is an APT frontend that uses the same package database, repositories, and package names. You can switch between apt and nala whenever you want.

Why does Debian 11 use apt install -t nala nala?

Bullseye lacks the newer Python dependencies Nala needs. The -t nala target release tells APT to pull those dependencies from Volian’s nala suite instead of the older Bullseye packages.

Can Nala undo package installs or upgrades on Debian?

Yes. nala history lists numbered transactions, and sudo nala history undo <ID> or sudo nala history redo <ID> replays them. A fresh install may still show Error: No history exists. until your first Nala-managed package change.

Conclusion

Nala is installed on Debian and ready to handle the same package work you already do with APT, but with clearer summaries and rollback history. For the next step, configure unattended upgrades on Debian to keep security fixes moving automatically, or install Flatpak on Debian if you also want a separate channel for desktop apps outside the APT repositories.

Search LinuxCapable

Need another guide?

Search LinuxCapable for package installs, commands, troubleshooting, and follow-up guides related to what you just read.

Found this guide useful?

Support LinuxCapable to keep tutorials free and up to date.

Buy me a coffee Buy me a coffee

Before commenting, please review our Comments Policy.
Formatting tips for your comment

You can use basic HTML to format your comment. Useful tags currently allowed:

You type Result
<code>command</code> command
<strong>bold</strong> bold
<em>italic</em> italic
<blockquote>quote</blockquote> quote block

Leave a Comment

We read and reply to every comment - let us know how we can help or improve this guide.

Let us know you are human: