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:

Nala's help output
Nala's help output

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.