APT Repositories

The ease with which you can update your system first depends on repositories of files in an APT-readable format. These repositories are nothing more than directories that contain the following two files:

Packages.gz: This is a list of all the installable binary packages in the repository. If you have some packages (maybe even some you packaged yourself with Debreate) in a directory, you can generate this file automatically with the “dpkg-scanpackages” command. Note that the resulting file is Gzipped. Sources.gz: This is a list of all the installable and buildable source files in Debian format. The command “dpkg-scansources” can generate this file. Note that source packages can be built automatically.

Once some packages live in a repository with a Packages.gz or Sources.gz index file, a user just needs to configure the file “/etc/apt/sources.list” to read those indexes and build a list of the packages available in all repositories. Configuring “sources.list” is as easy as adding lines to it in the following format: Each of the above items should be separated by a single space. The meanings of each of these is as follows:

“package type“: The line should begin with either “deb” (to install the binary packages from the repository) or “deb-src” (to install source packages from the repository). “package location“: This should be a URI where the repository is located. “distribution name“: The “distribution” of a Debian-based OS is the equivalent of a release. For example, Ubuntu’s latest release uses the distribution name “quantal,” while repositories for the latest from Linux Mint require “nadia.” “component name“: This also depends on the distribution, but most will separate their packages into components. For Ubuntu, these are “main” (free and supported software), “restricted” (non-free but supported software), universe (free, unsupported software), and “multiverse” (non-free, unsupported software). There are sometimes other components, such as “partner” in Ubuntu for software developed by Canonical’s partners. Note that more than one component can be listed on a single line in “sources.list“.

Once a line (or lines) like the above are added to the “sources.list” file (either with a text editor, or through a tool like the Software Centre), updating the package lists will take the following steps:

APT Tools

The command to perform the update referenced above should look familiar: The “apt-get” program is part of the APT collection of tools to perform actions on package. The most crucial commands you’ll need to remember are variations on “apt-get” (This one is the most important. Learn how to use it. Seriously.) and “apt-cache” (Many of the “apt-get” commands I run are immediately preceded by “apt-cache”). Some of the common sub-commands you’ll require for these are (you should run all of these as root using sudo):

apt-get update: Updating the package lists, as described above apt-get upgrade: Installing the latest package of any software for which there is a newer version listed in the index file apt-get install [package name]: This will download and install the package specified, as well as install any other required software for that package apt-get remove [package name]: Using the “remove” sub-command will uninstall a package, but retain any configuration files it may have created. If you’d like to get rid of those as well, use “apt-get purge“. apt-cache search [search term]: This command will list packages whose name or description contains the entered search term. apt-cache show [package name]: This command will display information on the specified package.

Some further reading is available on Ubuntu packaging and repositories for those who want to get a little more involved, and perhaps even contribute by packaging and maintaining your favorite application.