Should I use apt-get, apt, or apt-fast ?
I use Ubuntu 24.04 LTS as my daily driver for personal use and my software development job. I like to update all my programs and packages daily. I want to use the fastest programming interface to update and upgrade my installed packages/programs.
I can use apt-get
, or apt
, or apt-fast
.. but is there a real difference in speed and performance between them?
Let’s test them.
I used time
program available on Ubuntu Linux by default. The following benchmarks are on my own laptop with my home Internet. Your setup is different, but I published these statistics to compare between them as the other environment aspects are almost fixed/stable.
benchmark apt-get update ๐
$ time sudo apt-get update
________________________________________________________
Executed in 249.98 secs fish external
usr time 17.11 millis 0.00 micros 17.11 millis
sys time 36.06 millis 772.00 micros 35.29 millis
$ time sudo apt-get update
________________________________________________________
Executed in 244.07 secs fish external
usr time 16.92 millis 0.12 millis 16.80 millis
sys time 37.76 millis 1.02 millis 36.74 millis
$ time sudo apt-get update
________________________________________________________
Executed in 245.74 secs fish external
usr time 13.66 millis 0.00 millis 13.66 millis
sys time 40.05 millis 1.16 millis 38.89 millis
benchmark apt update ๐
$ time sudo apt update
________________________________________________________
Executed in 245.08 secs fish external
usr time 18.29 millis 0.00 micros 18.29 millis
sys time 33.61 millis 689.00 micros 32.92 millis
$ time sudo apt update
________________________________________________________
Executed in 246.59 secs fish external
usr time 15.82 millis 391.00 micros 15.43 millis
sys time 39.28 millis 199.00 micros 39.08 millis
$ time sudo apt update
________________________________________________________
Executed in 236.41 secs fish external
usr time 23.07 millis 689.00 micros 22.38 millis
sys time 31.53 millis 0.00 micros 31.53 millis
benchmark apt-fast update ๐
$ time sudo apt-fast update
________________________________________________________
Executed in 250.15 secs fish external
usr time 18.54 millis 0.00 micros 18.54 millis
sys time 31.18 millis 645.00 micros 30.53 millis
$ time sudo apt-fast update
________________________________________________________
Executed in 250.28 secs fish external
usr time 14.86 millis 0.00 micros 14.86 millis
sys time 39.57 millis 718.00 micros 38.85 millis
$ time sudo apt-fast update
________________________________________________________
Executed in 250.03 secs fish external
usr time 25.23 millis 345.00 micros 24.88 millis
sys time 32.17 millis 290.00 micros 31.88 millis
There is a warning displayed in the command output.
W: https://ppa.launchpadcontent.net/apt-fast/stable/ubuntu/dists/noble/InRelease: Signature by key A2166B8DE8BDC3367D1901C11EE2FF37CA8DA16B uses weak algorithm (rsa1024)
So, I decided to manually re-install apt-fast .
I removed its PPA by this command.
sudo add-apt-repository --remove ppa:apt-fast/stable
Then I uninstalled the apt-fast executable script itself by this command.
sudo apt remove --purge apt-fast -y
After that, I installed apt-fast by this command.
/bin/bash -c "$(curl -sL https://git.io/vokNn)"
benchmark apt-fast update (after re-install) ๐
$ time sudo apt-fast update
________________________________________________________
Executed in 249.89 secs fish external
usr time 15.38 millis 342.00 micros 15.04 millis
sys time 36.85 millis 185.00 micros 36.67 millis
$ time sudo apt-fast update
________________________________________________________
Executed in 249.69 secs fish external
usr time 18.18 millis 167.00 micros 18.01 millis
sys time 37.01 millis 992.00 micros 36.02 millis
$ time sudo apt-fast update
________________________________________________________
Executed in 249.67 secs fish external
usr time 8.97 millis 398.00 micros 8.57 millis
sys time 43.06 millis 217.00 micros 42.84 millis
Real world comparison ๐
Let’s pull all benchmarks/statistics in comparison to deduce which is the fastest.
apt-get update | apt update | apt-fast update | |
---|---|---|---|
#1 | 249.98 | 245.08 | 249.89 |
#2 | 244.07 | 246.59 | 249.69 |
#3 | 245.74 | 236.41 | 249.67 |
avg | 246.5967 | 242.6933 | 249.75 |
After calculating the average of each three runs of the same command, we can compare the averages.
Seeing these three numbers means that apt
is the fastest one with ~243 seconds.
But I do not accept these benchmarks, I think apt-fast can do better. I want to change some settings of apt-fast.
I set the underlying package manager to apt as it performed better in the benchmarks.
I edited /etc/apt-fast.conf
like this.
# Default: apt-get
#
-#_APTMGR=apt-get
+_APTMGR=apt
Let’s check if this makes a difference.
$ time sudo apt-fast update
________________________________________________________
Executed in 249.85 secs fish external
usr time 11.37 millis 336.00 micros 11.03 millis
sys time 38.77 millis 156.00 micros 38.61 millis
Its performance is the same.
Let’s change the maximum number of connection to 2 instead of 5 , and see if this makes any difference.
In /etc/apt-fast.conf
.
# Maximum number of connections
# You can use this value in _DOWNLOADER command. Escape with ${}: ${_MAXNUM}
#
# Default: 5
#
-#_MAXNUM=5
+_MAXNUM=2
Here is the benchmark after the change.
$ time sudo apt-fast update
________________________________________________________
Executed in 250.03 secs fish external
usr time 17.46 millis 0.00 micros 17.46 millis
sys time 34.69 millis 727.00 micros 33.96 millis
It seems these things doesn’t matter!
But what if I changed the mirrors into a faster servers.
Change Ubuntu server mirror ๐
I checked the Ubuntu archive mirrors , and I chose one of the fastest servers and set sources to get from them.
After changing the mirror server, let’s check their effect on update command using apt-get, apt, and apt-fast.
$ time sudo apt-get update
________________________________________________________
Executed in 249.79 secs fish external
usr time 15.94 millis 305.00 micros 15.63 millis
sys time 33.83 millis 155.00 micros 33.67 millis
$ time sudo apt update
________________________________________________________
Executed in 250.74 secs fish external
usr time 14.68 millis 309.00 micros 14.37 millis
sys time 37.12 millis 175.00 micros 36.95 millis
$ time sudo apt-fast update # _MAXNUM=2
________________________________________________________
Executed in 250.03 secs fish external
usr time 12.17 millis 382.00 micros 11.79 millis
sys time 37.96 millis 232.00 micros 37.73 millis
$ time sudo apt-fast update # _MAXNUM=5
________________________________________________________
Executed in 254.85 secs fish external
usr time 22.99 millis 315.00 micros 22.68 millis
sys time 34.62 millis 108.00 micros 34.51 millis
The results are actually worse!
What about the main server? ๐
Let’s change to it, and check.
$ time sudo apt-get update
________________________________________________________
Executed in 249.85 secs fish external
usr time 18.70 millis 292.00 micros 18.41 millis
sys time 34.97 millis 89.00 micros 34.88 millis
$ time sudo apt update
________________________________________________________
Executed in 249.80 secs fish external
usr time 16.26 millis 277.00 micros 15.98 millis
sys time 33.85 millis 113.00 micros 33.74 millis
$ time sudo apt-fast update # _MAXNUM=5
________________________________________________________
Executed in 249.82 secs fish external
usr time 17.06 millis 400.00 micros 16.66 millis
sys time 32.21 millis 168.00 micros 32.04 millis
After all the above changes and benchmarks, I came to the conclusion. It doesn’t matter. Yes! just stick to the recommended APT package manager on Ubuntu.
I uninstalled apt-fast, and I will use apt package manager with no abstraction layer over it for speed or performance. APT is as performant as it can be. (according to the previous/above benchmarks)
I hope you enjoyed reading this post as much as I enjoyed writing it. If you know a person who can benefit from this information, send them a link of this post. If you want to get notified about new posts, follow me on YouTube , Twitter (x) , LinkedIn , and GitHub .