Any Linux user should be familiar with package management systems. After all, they are a key component of every Linux distro.
Package management systems are an effective way to organize packages for installation, upgrade and deletion.
Package management systems have three sub-components: repositories, packages and package managers. A repository is a database of packages that users can search, download and install. A package contains the files for a particular program along with metadata that includes the package’s name, size and dependencies. When a user wants to install a package, the package manager will automatically search the repositories and install any missing dependencies.
As a user of Linux Mint, the package manager I’m familiar with is APT/dpkg through Synaptic. While I have no experience using existing elements to integrate into my own programming, I can comment on the advantages and disadvantages that a package management system for a Windows-adapted user.
1) Easy installation, upgrade and deletion.
One of the most annoying parts about installing, upgrading or deleting anything on Windows is browsing through all the different options available and figuring out which programs go hand-in-hand with one another.
The best example is deleting a program you haven’t used in ages. Just because you click “uninstall software” doesn’t mean all of the components are gone. You have to manually check your
Program Files to make sure everything is gone. A package management system should more likely than not get rid of otherwise-leftover files taking up your disk space. You will, of course, still have to delete anything you’ve saved outside of the package.
And although a package management system can breed ignorance — if you blindly click “download” without checking what the dependencies are — it can really save you the headache of finding everything and making sure it is the version compatible with your computer.
If you’re interested in learning more about the theory behind dependency resolution and upgrading, you may want to take a look at “Solving Linux Upgradeability Problems Using Boolean Optimization” by Argelich et al.
2) All the basics are available.
Have a craving you need to fill? You can find a safe version in seconds. It’s most likely available in your distro’s repositories.
I actually needed to run some Python code recently but I hadn’t had a chance to download an IDE that I liked. I was familiar with IDLE so I searched up IDLE in Synaptic, installed the package with its dependencies, and that’s all there was to it.
1) Not everything will be available
Repositories are moderated such that the packages that are available are stable and run well together. The downside to this is that sometimes you’ll have to trade the newest software for an older version. Sure, they run well but they’re not always what you want. Sometimes the program you want can’t be found in your distro’s repos at all.
For example, trying to find online games in Mint’s official repos is really difficult. This is probably the biggest issue for me. However, many popular Windows games can be played on Linux with Wine and PlayOnLinux.
But I still run into problems like this. (;¬_¬) — If you have a solution for this, please do let me know!
What are your experiences with package management systems? Do you like or dislike them? Let me know in the comments!