Monday, March 29, 2010

Package Management with Fedora

On March 3, 2010 I met with the Sam Houston Association for Computer Scientists in order to give a presentation on Package Management within Fedora. The Sam Houston Association for Computer Scientists (SHACS) is a student chapter of the ACM at Sam Houston State University and is an organization that I have been fortunate enough to be invited back to a number of times to present about Fedora and on this occasion I was fortunate to have around 30 people in attendance.

This Presentation was given about package management. I began covering about the overview of what a package is, describing how packages are groupings of files and metadata about those files in order to be installed unto a functional system. Some of these files may be executable, others will be for configuration of the executable application, documentation, or many other types of content. At this point I asked one of my favorite rhetorical questions, "Why should I care?" I went on to explain about how this concept can be used to break users from the bounds of their commonplace "next, next, finish" installation methods, the constant upgrading of individual applications one at a time, and using yet another utility to upgrade the operating system itself.

Going away from this concept for a moment, RPM makes its way on to the scene of the presentation with a quick overview of the history, what RPM is as a package format including a quick overview of macros and standards they represent, and then moving on with RPM the essential utility that allows us all to survive in a package powered world.

Now that have learned to install packages, what about all the dependencies? How will we be able to handle all of this by hand? Short answer: yum. Long answer: Yum is the YellowDog Updater Modified and it performs a large number of important functions and the most commonly known is that it automatically installs dependencies of packages without any further user intervention. Now we go back to the original rhetorical question, "Why should I care?" Well here we are, lets imagine being able to update, install, and remove any application on your system with a single tool, a single application, a single interface. Now take that and imagine it is also able to update itself along with everything else on your system. That's exactly what we have. None of the old traditional concepts that have snaked their way into proprietary operating systems that plague the planet, but pure open source package management that is your one stop shop.

"But Adam, I don't want to use the command line! It's scary!!" Don't fret! Here comes PackageKit to save those who are mouse interface inclined! At this point in the presentation I walked through some basic steps of how to navigate through PackageKit which took a very short time since it is so pleasantly straight forward.

Last little bit of the presentation is going over the concept of a repository so that users know where their code and content comes from, the ideas of where it comes from and the flow of developers/packagers that contribute to a repository that once tested and proven stable it released upon the public for installation via tools such as yum.

That's all for now! Apologies for taking so long to write up a report.


Slides from presentation (odp)