Linux user space is composed of a thousand small interrelated “packages”. It’s fairly easy these days to install any of the better linux distros – they typically “Just Work” out of the box – and all those packages play nicely together.
Once you have your linux machine running, you’re going to be tempted by all the cool stuff to do – Office apps, browsers, DVD players, all the programming languages, router capabilities, web servers, mail servers, PVR – and eventually you’ve got a pretty tricked out OS with lots of goodies.
But you need to keep it updated with the latest fixes when you connect to the internet, or you’ll eventually get your machine hacked. And who wants to be without the latest features? But you probably don’t have time to micromanage that update process. Even if you try, inevitably, you’ll be burned by package dependency problems. All those small packages that count on each other are being updated simultaneously, and which versions are safe and stable and play nicely together?
That’s where package managers come in. They determine the latest stable package updates and install them for you, typically while you’re sleeping. Some very helpful folks work very hard to keep packages synched up like that for us all. These sites of updated and synchronized packages are called repositories. All you have to do, at the top level, is select your target repositories, see what’s available in them, and grab what you want – everything you want will be installed and kept up-to-date, with all the dependencies calculated for you. Sounds like nirvana, right? Well, we’re getting closer anyway…