| Friday May 27th 2016

Linux Package Management 101

Excellent linux packages 101 writeup by DownloadSquad. it seems Ubuntu-rific but some of the info is universal.

“Your shiny new Linux system has it all — except that one program you really needed it to install. You get online, you find the program’s website, and click ‘download’. Except there’s not just a link to the program there.

There are four, or five, or more links to the program. Each has a slightly different format, ending with .rpm, .deb, .tgz, or possibly even .ebuild.

Some include x86 in the name, while others say ppc or amd64. What’s the difference? What’s actually included in these packages?

Packages are pre-compiled programs for your system (the exception being Gentoo’s .ebuild). You’ve got to know a bit about your system to install them.

synaptic-sm.jpg It’s not enough to know just that you need an .rpm or .deb. You should know your computer’s architecture (32 or 64 bit chip? PowerPC?), as well as the architecture of the distribution you installed. Don’t panic if you have a 64 bit chip and installed an x86 distribution (backwards compatibility is a good thing), but keep in mind you’ll have to install x86 packages. It’s best to use a package labeled for your distribution, though in some cases it is possible to install packages across similar Linux systems. For instance, many Slackware packages are able to install on Zenwalk.

Package management refers to the way your distribution installs and configures (as well as manages and removes) software applications and libraries on your system. When Windows installs an .exe (which is the closest thing in Windows to a package) it usually places it in a single specific place within a directory. Linux installs across a few directories, leaving many new Linux users scratching their heads as to where their .rpm actually went. Most distributions install the executables in /usr/bin, and the libraries in /usr/lib. You may notice related files in /usr/share or /etc.

Fear not, brave user. Package management systems have front-ends that make installing and removing packages easy. For instance, dpkg installs .deb files, and apt (or a graphical installer front-end to apt like Synaptic) can be used to not only install the program in question, but any underlying programs it might require to run (called dependencies). For .rpm files there is YUM, with graphical front-ends like Pirut or KYum. Slackware has swaret that uses the installpkg command set. Gentoo has portage and the emerge command. All of the aforementioned front-ends handle dependencies, which can save you loads of frustration (and keep you from descending into dependency hell).

Package management systems call upon your distribution’s software repositories to add programs, as well as keep track of anything you have installed. This is how it can calculate dependencies and hopefully help resolve them. If the dependency can’t be resolved (if two programs require dependencies that can’t co-exist on a system, for instance), the front-end will inform you of this so you can decide what to do.

So what about installing that critical missing piece of software? Let’s take a look at the process using Synaptic. YUM front ends work similarly. Slackware’s swaret and Gentoo’s portage are command-line based, but commands and configuration are well documented.

Upon opening Synaptic (or any application that installs programs) you are asked for the root password (in Ubuntu, this is your user password, as Ubuntu handles the root account differently). We need not remind you that root powers are not to be used lightly, and to only add trusted sources to your repositories.”


Related Posts: On this day...

Leave a Reply

You must be logged in to post a comment.