ALINK="#FF0000"> [ Prev ][ Table of Contents ][ Front Page ][ Talkback ][ FAQ ][ Next ]
LINUX GAZETTE
...making Linux just a little more fun!
Debian APT Part 2: Installing Unreleased Software
By Rob Tougher

Debian APT Part 2 - Installing Unreleased Software

Contents

Introduction
Overview
Installing Unreleased Packages
Initial Setup
Installing An Unreleased Package
Upgrading Unreleased Packages
Downgrading From Unreleased To Released
Conclusion
References

Introduction

APT stands for the Advanced Packaging Tool - it is a package management system for Debian GNU/Linux. In Part 1 of this series, I described how to use APT to install Debian software on your machine. If you are unfamiliar with APT, you should read that first.

Part 1 focused on installing only released versions of Debian's software packages. Besides the released versions, Debian provides unreleased packages for people who need the latest versions of software. This article describes how to install these unreleased packages.

Overview

In the last article I introduced two concepts: the package, and the package cache. Now I am introducing a third: the distribution. A distribution is a collection of packages, installation scripts, user documentation, and configuration applications unique to Debian.

There are three Debian distributions:

The stable distribution is the released version of Debian. The packages in stable have been tested thoroughly. Most of the packages installed on my machine come from the stable distribution.

The testing distribution is the candidate for the next release. Packages in this distribution have undergone some testing, but require more testing before they can be released. When testing is ready, it becomes the stable distribution, and the old stable distribution is moved to archives.

The unstable distribution is the development distribution. Debian volunteers update it continuously. The packages in unstable may not have been tested at all, and may not work. After a package has undergone some testing, it gets moved to the testing distribution.

A software package can exist in one or more of these distributions. For example, the php4 package is contained in all three. In stable its version is 4.1.2, in testing its version is 4.1.2, and in unstable its version is 4.2.3. I currently have version 4.1.2 installed on my machine - if I needed version 4.2.3, I could install it from the unstable distribution.

Installing Unreleased Packages

Initial Setup

To get your machine ready to install software packages from testing or unstable, you have to perform the following steps:

sources.list keeps a list of sources for Debian software. In the last article we had 7 CDROM sources and 2 HTTP sources. Now let's add two more HTTP sources - one for the testing distribution and one for the unstable distribution. My sources.list file now looks like the following:

# Two new sources
deb http://http.us.debian.org/debian unstable main contrib non-free
deb http://http.us.debian.org/debian testing main contrib non-free

# Sources from last article
deb http://security.debian.org/ stable/updates main
deb http://http.us.debian.org/debian stable main contrib non-free
deb cdrom:[Debian GNU/Linux 3.0 r0 _Woody_ - Official i386 Binary-6 (20020718)]/ unstable contrib main non-US/contrib non-US/main
deb cdrom:[Debian GNU/Linux 3.0 r0 _Woody_ - Official i386 Binary-7 (20020718)]/ unstable contrib main non-US/contrib non-US/main
deb cdrom:[Debian GNU/Linux 3.0 r0 _Woody_ - Official i386 Binary-5 (20020718)]/ unstable contrib main non-US/contrib non-US/main
deb cdrom:[Debian GNU/Linux 3.0 r0 _Woody_ - Official i386 Binary-4 (20020718)]/ unstable contrib main non-US/contrib non-US/main
deb cdrom:[Debian GNU/Linux 3.0 r0 _Woody_ - Official i386 Binary-3 (20020718)]/ unstable contrib main non-US/contrib non-US/main
deb cdrom:[Debian GNU/Linux 3.0 r0 _Woody_ - Official i386 Binary-2 (20020718)]/ unstable contrib main non-US/contrib non-US/main
deb cdrom:[Debian GNU/Linux 3.0 r0 _Woody_ - Official i386 Binary-1 (20020718)]/ unstable contrib main non-US/contrib non-US/main

Next you modify apt.conf so that you still use packages from stable by default. My apt.conf file looks like the following:

# Make 'stable' the default distribution
APT::Default-Release "stable";

To finish the initial setup call apt-get update. This will download the latest package information, and update your local package cache.

Installing An Unreleased Package

Let's continue our example from last section. The stable distribution contains version 4.1.2 of the php4 package. Let's say you wanted version 4.2.3 - maybe it contained some new feature you needed. You could install this package using the following command:

prompt$ apt-get -t unstable install php4

This would install version 4.2.3 of the php4 package. Note the -t switch on the command line - this is telling APT that it is allowed to use packages from the unstable distribution. If you didn't include the -t switch, APT would be unable to install version 4.2.3 of the package, because the stable distribution is your default.

Upgrading Unreleased Packages

You can upgrade your testing and unstable packages by using the apt-show-versions command:

prompt$ apt-get install `apt-show-versions -u -b | grep testing`

Downgrading From Unreleased to Released

You can downgrade packages on your machine. This means that if you have a testing or unstable package installed, and you don't want it any more, you can downgrade the package to the latest stable version.

Before being able to downgrade, you must make an entry in your /etc/apt/preferences file. The entry looks like the following:

Package: php4
Pin: release a=stable
Priority: 1001

Once you make this entry you can run the following command to downgrade a package:

prompt$ apt-get update

Conclusion

APT is a powerful package management system. It allows you to install, maintain, and remove software applications from your Debian system. In this article I focused on installing software from Debian's unreleased distributions, testing and unstable.

References

 

[BIO PEN] Rob is a software developer in the New York City area.


Copyright © 2003, Rob Tougher. Copying license http://www.linuxgazette.net/copying.html
Published in Issue 86 of Linux Gazette, January 2003

[ Prev ][ Table of Contents ][ Front Page ][ Talkback ][ FAQ ][ Next ]