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 or 13 can use that same repository when you specifically want Volian as the package source. At the moment, only Debian 12 gets a newer Nala build from Volian.
Install Nala on Debian
The main choice is simple: use Debian’s own package sources on Debian 12 and 13, use Volian on Debian 11, and only add Volian on Debian 12 or 13 when you specifically want Volian as the package source.
| Method | Channel | Debian Releases | Updates | Best For |
|---|---|---|---|---|
| Default repositories | Debian Packages | Debian 12, 13 | Automatic through APT | Most Debian users |
| Volian repository | Volian Nala wiki | Debian 11, optional on Debian 12 and 13 | Automatic through APT | Debian 11 users, or users who specifically want Volian as the source |
Debian’s default package 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 13 already ships Nala 0.16.0, so adding Volian there usually changes the package source without changing the installed Nala build.
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.
Refresh Debian package metadata before installing Nala
Refresh the package index before installing Nala. If APT reports pending security or core package upgrades, run a normal upgrade separately and review the transaction before confirming it.
sudo apt update
The install commands use
sudofor tasks that need root privileges. If your account is not in the sudoers file yet, follow how to add a user to sudoers on Debian.
Install Nala from Debian’s default repositories
Debian 12 and Debian 13 can install Nala directly from their standard package sources.
sudo apt install nala
Check the installed version to confirm the package is available and the command is in your path.
nala --version
Example output on Debian 13:
nala 0.16.0
Debian 12 currently reports
nala 0.12.2. Debian 13 reportsnala 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 already ships the same 0.16.0 build in trixie.
Install curl for the repository downloads and ca-certificates so APT trusts the HTTPS repository on minimal Debian installs.
sudo apt install curl ca-certificates
The repository files are downloaded with curl. For more transfer and troubleshooting options, see curl command in Linux.
Download Volian’s published keyring, DEB822 source file, and APT preference file directly. This uses the same repository metadata as Volian’s helper package but keeps the setup visible and avoids creating a legacy one-line .list source. curl runs without elevated privileges; sudo tee only writes the downloaded files into system paths.
set -o pipefail
sudo install -m 0755 -d /usr/share/keyrings /etc/apt/sources.list.d /etc/apt/preferences.d
curl -fsSL https://gitlab.com/volian/volian-archive/-/raw/main/volian-archive-scar-unstable.gpg | sudo tee /usr/share/keyrings/volian-archive-scar-unstable.gpg > /dev/null
curl -fsSL https://gitlab.com/volian/volian-archive/-/raw/main/volian-archive-nala-unstable.sources | sudo tee /etc/apt/sources.list.d/volian-archive-nala-unstable.sources > /dev/null
curl -fsSL https://gitlab.com/volian/volian-archive/-/raw/main/volian-archive-nala-unstable.pref | sudo tee /etc/apt/preferences.d/volian-archive-nala-unstable.pref > /dev/null
sudo chmod 0644 /usr/share/keyrings/volian-archive-scar-unstable.gpg
sudo chmod 0644 /etc/apt/sources.list.d/volian-archive-nala-unstable.sources
sudo chmod 0644 /etc/apt/preferences.d/volian-archive-nala-unstable.pref
That setup creates /etc/apt/sources.list.d/volian-archive-nala-unstable.sources, adds /etc/apt/preferences.d/volian-archive-nala-unstable.pref so Volian’s Nala packages win when selected, and stores the signing key in /usr/share/keyrings/volian-archive-scar-unstable.gpg.
Read the generated source and preference files once so you can confirm the repo uses DEB822 format, a dedicated keyring, and a package-specific pin for Nala.
cat /etc/apt/sources.list.d/volian-archive-nala-unstable.sources
printf '\n'
cat /etc/apt/preferences.d/volian-archive-nala-unstable.pref
Relevant output includes:
Types: deb deb-src URIs: https://deb.volian.org/volian/ Suites: nala Components: main Signed-By: /usr/share/keyrings/volian-archive-scar-unstable.gpg Package: * Pin: release a=nala Pin-Priority: 100 Package: nala Pin: release a=nala Pin-Priority: 990
Confirm that the source file is DEB822 and that no Volian legacy .list file was added.
find /etc/apt/sources.list.d -maxdepth 1 \( -name 'volian*.sources' -o -name 'volian*.list' \) -print
Expected output:
/etc/apt/sources.list.d/volian-archive-nala-unstable.sources
The
Signed-Byline keeps the Volian key scoped to this repository instead of trusting it for every package source on the system. If a Volian.listpath appears in the check, it came from an older or separate setup and should be inspected before continuing.
Refresh APT so Debian pulls the Volian metadata into the package cache.
sudo apt update
Relevant lines include the new Volian source:
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
Relevant lines on Debian 11 include:
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
The
990priority comes from Volian’s preference file. Bookworm switches to Volian’s newer 0.16.0 candidate here, while Trixie can still show Debian’s own 0.16.0 package alongside Volian. That is why Debian 13 usually has no practical reason to add the extra repository.
Debian 12 and Debian 13 can install Nala normally once the Volian repository is active.
sudo apt install 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 -t nala nala
The
-t nalaflag tells APT to prefer packages from Volian’snalasuite 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
Example 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 tasks 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
Review the package list before confirming nala autoremove, especially on systems that already had autoremovable packages before you installed Nala.

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.
Update Nala on Debian
Both supported installation paths register Nala with APT, so package updates use the same package-management flow as the install. Refresh package metadata first, then target Nala with APT when you do not want to start a full system upgrade.
sudo apt update
sudo apt install --only-upgrade nala
If Nala came from Volian, keep the Volian source and preference file enabled before expecting Volian updates. Use sudo nala upgrade only when you intend to review and apply normal system upgrades, not when you want to target the Nala package alone.
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 can clear Python dependencies that came in only for Nala. Review the autoremove list before you confirm it, especially on systems that already have unrelated autoremovable packages.
sudo apt remove nala
sudo apt autoremove
apt autoremovecan also remove Python support packages that were pulled in with Nala on a clean system. If you use libraries such aspython3-aptorpython3-debianin your own scripts, keep any package you still need before confirming the transaction.
Check the package state after removal.
apt-cache policy nala
Example 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 remove the Volian source, preference file, and keyring in the next step.
Remove the Volian repository on Debian
Remove the manual Volian files, or purge the older helper packages if your system already has them. The guarded block below chooses the helper-package cleanup only when those packages are installed or left in residual-config state.
if dpkg-query -W -f='${db:Status-Abbrev}\n' volian-archive-nala volian-archive-keyring 2>/dev/null | grep -Eq '^(ii|rc)'; then
sudo apt purge volian-archive-nala volian-archive-keyring
else
sudo rm -f /etc/apt/sources.list.d/volian-archive-nala-unstable.sources
sudo rm -f /etc/apt/preferences.d/volian-archive-nala-unstable.pref
sudo rm -f /usr/share/keyrings/volian-archive-scar-unstable.gpg
fi
sudo apt update
Verify that the Volian source, legacy list paths, preference file, and keyring are gone.
remaining_volian_files="$(find /etc/apt/sources.list.d /etc/apt/preferences.d /usr/share/keyrings -maxdepth 1 \( -name 'volian*.sources' -o -name 'volian*.list' -o -name 'volian*.pref' -o -name 'volian*.gpg' \) -print 2>/dev/null)"
if [ -n "$remaining_volian_files" ]; then
printf '%s\n' "$remaining_volian_files"
else
echo "No Volian files remain"
fi
Expected output:
No Volian files remain
Confirm Bullseye no longer has a repository candidate for Nala.
apt-cache policy nala
Example 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 withnala fetch.
Print the directory first so you can confirm the cleanup target before deleting it.
sudo find /var/lib/nala -maxdepth 0 -print 2>/dev/null || echo "No Nala history directory found"
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
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 -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
Relevant lines include:
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
Example 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.orgresolves cleanly before you blamenala 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
Recreate the Volian source files, refresh APT, and then install Nala with the Bullseye-specific target release.
sudo apt install curl ca-certificates
set -o pipefail
sudo install -m 0755 -d /usr/share/keyrings /etc/apt/sources.list.d /etc/apt/preferences.d
curl -fsSL https://gitlab.com/volian/volian-archive/-/raw/main/volian-archive-scar-unstable.gpg | sudo tee /usr/share/keyrings/volian-archive-scar-unstable.gpg > /dev/null
curl -fsSL https://gitlab.com/volian/volian-archive/-/raw/main/volian-archive-nala-unstable.sources | sudo tee /etc/apt/sources.list.d/volian-archive-nala-unstable.sources > /dev/null
curl -fsSL https://gitlab.com/volian/volian-archive/-/raw/main/volian-archive-nala-unstable.pref | sudo tee /etc/apt/preferences.d/volian-archive-nala-unstable.pref > /dev/null
sudo chmod 0644 /usr/share/keyrings/volian-archive-scar-unstable.gpg
sudo chmod 0644 /etc/apt/sources.list.d/volian-archive-nala-unstable.sources
sudo chmod 0644 /etc/apt/preferences.d/volian-archive-nala-unstable.pref
sudo apt update
sudo apt install -t nala nala
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.


Formatting tips for your comment
You can use basic HTML to format your comment. Useful tags currently allowed in published comments:
<code>command</code>command<strong>bold</strong><em>italic</em><blockquote>quote</blockquote>