Stop Using APT! Switch to Nala
A faster, cleaner alternative to APT for managing packages on Debian-based systems.
I recently started using the Nala package manager, and I was immediately impressed.
As a longtime Ubuntu fan, I was used to managing packages with APT, but Nala completely changed the game for me.
It acts as a new frontend for APT – just as APT itself is a frontend for the underlying package manager – but with a much cleaner, more readable, and user-friendly experience.
The way it simplifies package management while staying fully compatible with APT, all while adding new functionalities, makes it a must-try for any Linux user.
Why Nala
For newer Linux users, APT can often be confusing when it comes to installing or upgrading packages.
Even for me, someone who has been using Linux – specifically Ubuntu – every day for a long time, I find APT's output frustrating and unreadable.
Nala improves this experience by eliminating unnecessary messages, enhancing the formatting of package details, and using color coding to clearly indicate the actions being taken – whether it's installing, removing, or upgrading a package.
But that's not all. Nala also brings exciting features like parallel downloads, speeding up package installations, and Nala Fetch, which lets you pick the fastest mirrors.
It’s just great!
Installation
We install Nala using APT. Yeah, you heard that right – APT!
When I first installed it, I couldn’t help but wonder, Would APT be sad? It knows I'm about to replace it... but don't worry, APT’s still here to stay.
Use the following command to install Nala:
sudo apt install nala
Once Nala was installed, my next step was to explore its functionality.
The first thing I do after installing any new package (especially one I haven't used before) is check its man page or use the -h
option to see what options are available and get a sense of how to use it.
So, of course, I went ahead and tried the -h
option with Nala, and I was seriously impressed.
See for yourself:

It is organized, put inside its own box, colored, and tells you exactly how to use it.
Nala Fetch
Before you start using Nala, I want to show you one of its best features to speed up package management: the fetch
command.
Just run this:
sudo nala fetch
This basically tests all available mirrors, provides you with a list of them, tests the latency, and scores each mirror.
It then lets you pick the fastest ones to use and writes them to the nala-sources.list
file inside the /etc/apt/sources.list.d/
directory.
And that's it! Now you are using the fastest mirrors.
At the moment, the fetch
command works only on Debian, Ubuntu, and derivatives still tied to the main repositories.
Parallel Downloads
Unlike APT, Nala supports parallel downloads, meaning it can download up to three packages at once from each mirror. This speeds up package installations significantly, especially for many small packages.
Nala also alternates between mirrors, boosting download speeds by choosing the fastest available server. If one mirror fails, Nala automatically switches to the next one, ensuring your downloads continue without interruption.
I love how Nala handles these tasks on its own, without relying on APT for downloading or verification, making it both faster and more reliable.
Running Updates
Nala provides commands to update your server, just like APT, but with an additional useful option.
Instead of running apt update
followed by either apt dist-upgrade
or apt full-upgrade
, Nala simplifies the process with a single command:
sudo nala full-upgrade
This command updates your package lists and upgrades the server by removing, installing, and upgrading packages – all in one step.
However, if you prefer the traditional APT workflow, Nala still provides equivalent commands.
You can use these two commands to update package lists and upgrade installed packages:
sudo nala update
sudo nala upgrade
These work exactly like apt update
and apt upgrade
, giving you the same functionality with Nala’s improved readability.
History Tracking
One of the commands Nala provides that I love is the history
command!
It gives me a clear log of past package operations, like this:
ivan@vm1:~$ nala history
ID Command Date and Time Altered Requested-By
1 upgrade base-files bind9-dnsutils bind9-host bind9… 2025-02-20 08:03:23 UTC 65 ivan (1000)
2 full-upgrade 2025-02-20 08:04:41 UTC 3 ivan (1000)
3 install bpytop 2025-02-20 08:50:01 UTC 2 ivan (1000)
Here’s what each column means:
- ID: The operation number in chronological order.
- Command: The exact package management command that was run.
- Date and Time: When the command was executed.
- Altered: The number of packages that were installed, upgraded, or removed.
- Requested-By: The user who ran the command.
This makes it easy to track package changes on your server, ensuring you always know what was installed, upgraded, or removed.
Conclusion and Final Thoughts
With its clean and readable output, faster downloads through parallel connections, and convenient features like Nala Fetch and History Tracking, Nala offers a smoother experience compared to APT.
The rest of the commands remain the same as APT – such as install
for installing packages or autoremove
to remove unneeded ones – so there’s little to no learning curve for existing users.
If you found value in this reading or have any questions or feedback, please don't hesitate to share your thoughts in the discussion section.
Your input is greatly appreciated, and you can also contact me directly if you prefer.
Discussion