Monday, March 2, 2009

Package Manager Analogy for Windows Users.

So, I was listening to Hacker Public Radio #299 where thirtythree and a buddy (Bill) were demonstrating Linux to a group that were obviously unfamiliar the OS. It couldn't have been more then five minutes in to the presentation, when a very common question was asked, "How do you install software on Linux?" Bill did his best to explain repositories, packaging and dependencies and how you don't have to go to various websites to find software, etc. Now, I've had this same question asked to me on occassionl, in fact, just last week and I would try my best to explain how cool and easy a package manager is, usually to no real avail.

So, while listening to Bill trying to explain the Linux way of installing software, the clouds parted and soft ray of sunlight shone up me and I think I've come up with the perfect analogy or example of a package manager and repositories. It's iTunes. Yes, synaptic, yast, Mandriva control center are like the iTunes of software. Most people are familiar with iTunes and have used it, so I feel it's a good comparison to get the message accross. Follow me on this make believe conversation.

dude: How do you install software on Linux?

me: Linux has a build-in online store of software, were you can search for almost any type of software. Have you ever used iTunes to buy music?

dude: yes.

me: Well Linux has a similar tool for getting software, except all the software is free. It's called synaptic (or insert other GUI PM), let me show you.

dude: cool!

me: In Windows, to install software, you usually have to go to a retail store and buy a CD or go to a website, like to download and install Acrobat Reader and/or then go to to download and install thunderbird. Well, if you were to buy music the same way it would be like going to the U2 website to download their new album and then going to Coldplay's website to download their music, etc. The reason iTunes is so popular is because it's this one-stop-shop for music. You don't have to go hunting the web or a retail store for your music.

dude: Yeah, that makes sense.

me: Well, synaptic on Linux is like iTunes, where it is the one-stop-shop for software on Linux.

dude: I like it.

me: So, that is how you install software on Linux.

Now, I understand that there are fundamental differences between iTunes and a Package Manager, but Joe Smoe needs some type of tangible comparison to really get it.

Now something else that can be done is, explaining that many companies do offer Linux packaged software on there website, then show them some examples. Here are just a few:

Adobe Flash
vlc player

..and there are tons more that I'm sure you can think of to add to this list. When I show this to the potential new Linux user, I would emphasize that using the distro's package manager is recommended way of doing it.

Let me know what you think. Just another way to convert the world.


Vlado said...

As a dude, I must agree that one stop shopping is delicious. However, it enforces lock-in. Until the various distributions standardize on RPM as suggested by Linux Standard Base, this will be a problem (I would suggest but that is for another day). You gave Firefox as an example of software that is downloadable. If you follow the link you gave, it takes you to a tar ball rather than a nice package!

I know that firefox is in every distribution repository, but packaging your own packages is a royal pain on Linux. There are different kernels and libcs not to mention versions of Gtk+/Kde and X.

Trying to ship software yourself is a pain. If you make your own repository, you will need to sign them. Which means your users will need to install your gpg key. Don't get me wrong, this is good for the clue-full but people get the install.exe + OK + OK + OK + OK
and making RPM packages easy is not as nice as it should be.

My latest pet peeve is that different distributions package things differently. Red Hat follows the Fedora Packaging Guidelines and SuSE could not care less for those guidelines. So you get, fedora packagers taking the source from upstream developers and repacking it. What a waste of brain power. Linux needs some cross distribution packaging guidelines. I just want to make a package for each architecture. Why should I care about the different distributions?

Rant over. Sigh.



Billy said...

I think linux should rather standardize on Debs.

Dave said...

I'll 2nd the deb comment but that's because I'm on Debian. RPM, Deb, Emerge, Pacman. The concept is the same. Getting a standard, that's gonna take some work.