Why I Wish Someone Had Drilled Package Management Into My Head Before I Went Full-Time DevOps
Admin User
Author
I remember the exact moment I realized I'd been doing Linux wrong. It was 3 AM, I was debugging a production server in Karachi, and I'd just manually downloaded and compiled some obscure tool from a GitHub repository because I "wasn't sure" if it was in the package repositories. My senior dev looked over my shoulder, sighed, and asked: "Why aren't you just using apt?" I had no good answer. That night taught me that package management isn't some optional Linux skill—it's foundational. Yet I see developers (including my younger self) treating it like a side quest.
The problem is that most of us come from Windows backgrounds where you double-click an installer and move on. On Linux, that's not how anything works. But here's the thing: once package management clicks, your entire relationship with Linux infrastructure changes. You stop fighting the system and start working with it. I wish someone had spent an afternoon drilling this into me before I spent six months being inefficient.
Why Package Managers Aren't Just Convenience
Let me be direct: using a package manager isn't about being lazy. It's about leveraging decades of work that the Linux community has already done for you. When you apt install nginx, you're not just getting nginx. You're getting a vetted, tested version that plays nicely with your distribution. You're getting dependency resolution—meaning nginx's dependencies are automatically handled. You're getting automatic security updates. You're getting configuration file management.
Compare that to downloading nginx from some website and compiling it yourself. Now you're responsible for tracking security patches. You're responsible for dependency hell. You're responsible for knowing where everything installed. In production, this is a nightmare.
Understanding the Landscape (Because It's Actually Fragmented)
Here's where I get a bit cranky: the Linux package manager situation is genuinely confusing for beginners because there's no single answer. Ubuntu/Debian use apt. Fedora/RHEL/Rocky use dnf. Older systems use yum. Alpine uses apk. It's fragmented, and no amount of mental models can change that.
But here's the practical takeaway: know which distribution you're working with first. Are you on Ubuntu? Learn apt deeply. Are you on Fedora for work? Master dnf. Don't try to learn all of them at once—that's how you end up writing apt install on a Fedora box and feeling stupid.
The low-level tool—rpm or dpkg—exists, but honestly, you almost never need it directly. Package managers exist specifically so you don't have to think about the low-level stuff.
The Commands You Actually Use Every Single Day
I can count the commands I use regularly on one hand. And I mean actually use, not theoretical knowledge.
Update your package list first. Always. This is non-negotiable:
sudo apt update # Debian/Ubuntu
sudo dnf check-update # Fedora/RHEL
This isn't installing anything yet—it's just syncing your local package metadata with the repository. I skip this step maybe once every two years, and it always bites me.
Install something:
sudo apt install curl git docker.io
Notice I can chain packages. Do this. It's faster than installing one at a time.
Upgrade everything:
sudo apt upgrade
On production servers, I'm cautious with this one. On development machines? I run it regularly.
Search when you're unsure:
apt search postgres
The package name isn't always what you think it is. Postgres might be postgresql, postgresql-13, or something else entirely. Search first, ask questions later.
What I'd Do Differently Than the Original Guide
The original article is solid, but it plays it safe. Here's my opinionated take: beginners should learn to read apt show or dnf info output early. Understanding package versions, dependencies, and what's actually installed matters. It's the difference between cargo-culting commands and actually understanding what's happening.
Also, I'd be more aggressive about teaching sudo. The number of developers who've run package manager commands without sudo and then blamed the system is... let's just say "more than zero."
And finally, the one mistake nobody mentions: installing packages from random PPAs or third-party repositories without understanding the security implications. Just because something's "easier to install" from someone's PPA doesn't mean you should do it in production.
Where Do You Stand?
How comfortable are you with package management on your primary development OS? And more importantly—do you understand what each command actually does, or are you just copy-pasting from StackOverflow? That's the real test.
Source: This post was inspired by "Linux Package Management Explained Simply (apt, dnf, yum & rpm)" by Dev.to. Read the original article