Archive for repositories

repositories and package management

Or, what to do when you want to update?

I’ve been thinking about this in light of my previous entry plus the annoyinggood comments my friend made.

There are basically three options to update an application on a Linux distro:

  1. From that distro’s official repositories
  2. From “unofficial” repositories
  3. From source files

Really, all three have their pros and cons. The safest and most prudent approach is to work from official (and, really, popular or widely used as well) repositories. This is least likely to break things and as long as the package managers (apt, rpm, yast, Synaptic Package Manager, and so on and so forth) are used, uninstallation is clean as well. But, I am left dependent on when the folks managing the repositories decide to check in new packages.

This brings me to the second option (which is a slightly fuzzy distinction here, but I’ll make it anyway). There are repositories that individuals put together, often for particular projects, although others put together more general and very useful repositories (such as treviño’s). These repositories, while they make it easier to install more complex updates to applications, may still break other things in the distro as they are usually too narrowly focused on the app to make sure the distro as a whole is okay. This is the problem I had with updating gtkpod: while I used repositories to install it, it broke several applications because of the conflicts it created by updating shared libraries (which were not backward compatible as it turned out).

The third option, to download source and compile can sometimes avoid these problems (for example, by making a private copy of some of the libraries so as to leave the older ones in place for the distro and yet make the newer items available). But the largest con with these are that it’s often difficult to uninstall these things (unless you have a good idea of what you’re doing) and it’s very easy to forget what you’ve done later on. Come a distro upgrade and there may well be two versions of something hanging about. Or, it breaks the custom install and time is required to reconcile the two again. It’s also difficult to resolve things if the compile just doesn’t work, and it’s impossibel to tweak things (eg to have two separate libraries) unless you really are unix-conversant.

Different people take different approaches. One friend is willing to wait and just use official repositories. Another is willing to go for various different things as long as its repository based. I will sometimes compile things from source partly because I can, and partly because I do use things that aren’t actually available any other way. But now and then I get tripped up by zooming a bit too quickly to the third option. For starters, I could have saved myself a little trouble with Flash 9 by using treviño’s handy repository…

Even so, one thing I noticed with new versions (eg, going from Ubuntu’s Dapper Drake to Edgy Eft) is that the newer version sometimes removes or replaces previously installed packages, even those installed from the repository. I can’t remember offhand all of the ones that were so affected, but Network Manager (the best linux app for handling wireless) was one of them. Going from Warty to Dapper, it disappeared entirely, and I threw my hands up and wrote a script. Then going to Edgy, it didn’t like my script anymore, and looking about, I realized Network Manager was now integrated into the desktop. So there’s always that. Sometimes packages are simply removed. I then have to remember what I did have so I can restore it.

To fill in these holes, one of the things I do is I keep a file (I call mine “log” simply enough) in which I detail all the things I do to my Linux installation, and from where/how. Later on, that saves me time figuring out what I did and which programs I do have. It helped me reinstall Flash 9 as well; I’d recorded where I got the instructions and what happened when I followed them.

In any installation, I note the application, the version, the relevant webpages, whether I used apt-get, whether i added repositories (and if so which) and whether I compiled from source (in which case I frequently cut and paste the entire transcript from the terminal into the log. This file is so important I back it up on a jump drive so that I can always get at it.

del.icio.us:repositories and package management  digg:repositories and package management

Comments

Bad Behavior has blocked 443 access attempts in the last 7 days.