apt remove vs apt purge: What's the Difference?
To uninstall an application in the Ubuntu terminal, you can use:
sudo apt remove package_name
But in various forums, you may come across the suggestion to use the apt purge command for removing applications completely.
This leaves you confused because using apt purge is quite similar to apt remove:
sudo apt purge package_name
So, why are there two similar commands for removing packages? What’s the difference between the two? Let me explain it to you with a few examples.
What’s the difference between apt-remove and apt-purge?
Both apt-remove and apt-purge do the same thing and that is to uninstall a package. The apt-purge removes the package and purges any configuration files associated with it. That’s the only difference between the two. Neither command touches the application files under the home directory of the user.
Have you ever removed an application and installed it again, only to notice that all your settings are in place? It’s because the apt remove command doesn’t remove the configuration files.
See what’s being removed and what remains
Let me share a practical example of removing the mplayer application using both apt remove and apt purge commands. The focus is on seeing what files remain after each operation.
Here are the files associated with mplayer before removal.
Now, if I run the apt remove command.
Here are the files that remain in the system:
As you can see, there are mplayer files remaining in two locations: /etc and /home/abhishek.
Now, if I install mplayer again and use apt purge to remove mplayer application this time.
Let’s look for files associated mplayer now.
As you can see, the files from /etc directory no longer exists.
But what about the files in the home directory? Should apt purge not remove it?
The answer is negative. The apt commands do not touch the configuration files located under the home directory. They remain in the system unless you manually remove them. Those files are really small in size and hardly take disk space.
Do note that not all applications create configuration files under /etc or home directory.
The effect of using apt remove or apt purge
A practical example I can think of is Discord. You install Discord on Ubuntu with deb file. Start using it by logging into your account. Remove discord and install it again using deb file.
Now if you start Discord, you’ll notice that you are already logged into your account. Surprising, no?
But this is a feature because some applications like Discord, VirtualBox provide you updates similarly. You remove the current version and install the newer one (even if you don’t see this process). Since the application configuration files are not touched, you are logged back in without additional effort.
The apt remove command gives you the option to reuse an application with similar configuration that you used in the past.
However, you may not always want it. If you configured an application in a bad way and want to start from scratch, the apt purge command is the way to go forward.
Does apt purge perform a wild-card removal?
When you purge a package, you’ll notice that it mentions removing package-name*. This indicates that it will remove all the packages with names starting from package-name.
I didn’t find a definite answer on this point in the documentation (i.e. man page). So, I did a little test on my own. I installed espeak and espeak-ng packages. The espeak* should expand to espeak-ng as well.
But when espeak was pruged, the espeak-ng package was untouched. So there seems to be a mechanism that protects against such wild card expansions.
So, should you use apt remove or apt purge?
Few people just get addicted to using apt purge.
In my opinion, apt remove is what you should use most of the time. Use apt purge when you have to get rid of the custom configuration files.
In both cases, you’ll have to remove the remaining configuration files from the user’s home directory and run apt autoremove to eliminate any leftover dependencies.
Over to you now. Do you understand the difference between apt remove and apt purge better now? Which one do you prefer to use?