Document Home

Woody (testing) upgrade


Once you have a running installation with which you are happy, upgrading to the testing (woody) destribution is really pretty simple. First you must edit the file /etc/apt/sources.list to point to the testing distribution at the the desired location. Put simply, all you have to do is change that file so it says "testing" rather than "stable", and specify a different source if you wish.


Now you might say, "How do I do that?" (If you are among the linux-aware, this will likely bore you. If you choose to read on, don't complain, you have been warned.) If you have installed emacs, you can open the file by typing "emacs /etc/apt/sources.list". Make the changes, and to save the file hit the control key and "x" at the same time, then press "c". If you are not logged on as root, you will not be able to save it back to it's original location. Just save it to your home directory, su to gain root access, and copy it back to its original location. If you didn't install emacs, you could use vi to edit it, but if you've been raised in a world of graphical editors and don't want to spend an hour or two figuring vi out, I would suggest that you slide right on by that one. (Actually, I'm exaggerating a bit. vi is a very handy tool if you get used to it. Few who are coming from the Windows world, however, would argue that it is distinquished by its ease of use.)


Ok, so if you don't have a way to edit the file, how do you deal with it? There are a number of ways, but to keep this discussion reasonable the easiest thing to do is just to use the dselect tool and change the source there. Start dselect, and choose the top menu item, "Access". Next choos "apt", and pick either ftp or http, as appropriate. (If this confuses you, go to the mirrors page at the main debian site and take a look around. Files can be retrieved by using htttp requests or ftp gets, and mirror sites can be configured to support either or both. What you are doing here is simply telling your client what kind of request the mirror site expects and supports.) The utility will tell you that it sees that you already have a list of sources, and ask if you want to change it. Hit "y" and enter, and you will be prompted to enter the address of your source. This must be in the form that specifies the form of the request, the address, and the parent directory under which the mirror is located. That is, it must be of the form

"http://debian.uchicago.edu/debian"

, without the quotes, of course. Don't ask me why, this is just the way the script wants it. You'll be aked which distribution you want, type "testing". After that, you can simply hit enter until you are returned to the main dselect menu. Choose the bottom option, "Quit", and exit dselect. You've just edited the sources.list file.


Once you've changed that file, issue the command "apt-get update". That will go out and refresh you local list of packages with that from the testing distribution at the mirror you have chosen. If there are problems with this step, there are either problems with your sources.list file or with the mirror you have chosen. Most likely, you have misspecified the address/parent directory combination. Go back and re-check what you have specified, and if all else fails run dselect and choose the default location or use the mirror I use at the University of Chicago, I'm sure they won't mind (grin).


After updating your list of packages, type the command "apt-get dist-upgrade". That will go out and upgrade all of your installed packages and libraries with the updated ones. Theoretically, all you have to do is sit back and wait. Unfortunately, it is often the case that packages in the testing distribution may not have appropriately specified their requirements (It is, after all, called the testing distribution.) If this process bombs out, try using "apt-get -f install". That will go out and try to install broken packages by fixing missing dependencies. After that, run "apt-get dist-upgrade" again. If that doesn't work, run the command again and watch what happens closely to identify the package on which the installation falters. If it goes past too quickly, redirect the output to a file and go through it, looking for the problem package. (You would redirect the output like this: "apt-get dist-upgrade > log.txt".) You can then look through the log.txt to find the problem. Once you know the problem package, download the problem package and any requisite packages to a directory on the machine. (You can tell what those packages are by searching the package listings here for the suspect package. When you select one of the listed packages that meet you search criteria, the packages on which it depends will be listed.) Once you've dropped those packages into a common directory, cd to that directory and type "dpkg -i *.deb". The dpkg utility will install the debs in that directory, overwriting any already installed (don't worry about that). You can then run the dist-upgrade again. In truth, however, I cannot anticipate everything you might run into, it can change from day to day as new packages are uploaded into the testing distribution. Keep your head up, keep hitting it. Don't be afraid to do a web search in the groups section at google.com on keywords that describe your problem, you might pick up a suggestion that way. Sometimes you learn the most when you work through problems like these. The most serious problems I have encountered during one of these upgrades was when the upgraded gcc compiler failed to install because a requisite library was not present. The strategy described above worked in that instance.


Once you've completed upgrading to the testing distribution, you are ready to move on to the steps required to actually implement mosix.


Next - Mosix