[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ next ]


APT HOWTO
Chapter 3 - Basic Configuration


3.1 The /etc/apt/sources.list file

As part of its operation, APT uses a file that lists the 'APT sources' from which packages can be obtained. This file is /etc/apt/sources.list.

The entries in this file normally follow this format:

     deb http://host/debian distribution section1 section2 section3
     deb-src http://host/debian distribution section1 section2 section3

Of course, the above entries are fictitious and should not be used. The first word on each line, deb or deb-src, indicates the type of archive: whether it contains binary packages (deb), that is, the pre-compiled packages that we normally use, or source packages (deb-src), which are the original program sources plus the Debian control file (.dsc) and the diff.gz containing the changes needed for `debianizing' the program, check Building from source, Chapter 5.

We usually find the following in the default Debian sources.list:

     deb http://http.us.debian.org/debian stable main
     deb http://security.debian.org stable/updates main
     
     #deb-src http://http.us.debian.org/debian stable
     #deb-src http://security.debian.org stable/updates main

These are the lines needed by a basic Debian install. The first deb line points to the official archive, the second to the archive of Debian security updates.

The two last lines are commented out (with a `#' in front), so APT will ignore them. These are deb-src lines, that is, they point to Debian source packages. If you often download program sources for testing or recompiling, uncomment them.

The /etc/apt/sources.list file can contain several types of lines. APT knows how to deal with archives of types http, ftp, file (local files, e.g., a directory containing a mounted ISO9660 filesystem) and ssh, that I know of.

Remember: everytime you want to add a source for APT to grab packages from this is the file you're going to edit.

Do not forget to update the list of packages after modifying the /etc/apt/sources.list file, see Updating the list of available packages, Section 4.2. You must do this to let APT know what packages are available from the sources you specified.


3.2 Authenticating packages

As of APT version 0.6, packages are authenticated to ensure that they originate from the source that they claim to originate from. This is an optional security feature. If the system can't authenticate the package upon installation, it'll ask you whether or not you want to abort the installation.

Since this authentication is based on cryptographic methods, APT maintains it's own keyring. Each of the entries in your sources.list file will have a corresponding key. However, if you're using unofficial APT sources, it's possible that a source you're using won't be authenticated. If this is the case, you should encourage the maintainer of that source to implement authentication on their site.

To take advantage of this security feature, you need to add a key to APT's keyring for each authenticated source. This can be done with GPG, but APT provides a tool, apt-key, which is a simplified wrapper to GPG.

apt-key is easy to use. The tricky part of this process is getting a key for each of your sources, and making sure that you can trust that key.

Debian's archive key will be installed in /usr/share/apt/debian-archive.gpg, so you can simply use that file to add the official archives' key to your APT keyring by doing this:

     # apt-key add /usr/share/apt/debian-archive.gpg

For external, unofficial sources you'll need to find out where did they provide their public key so that you can import it into your APT keyring.

If you choose to disable the cryptographic checking of Release files for some reason you can add the following to APT's configuration (see The APT configuration file, Section 3.4):

     APT::Get::AllowUnauthenticated "true";

3.3 Adding a CD-ROM to the sources.list file

If you'd rather use your CD-ROM for installing packages or updating your system automatically with APT, you can put it in your sources.list. To do so, you can use the apt-cdrom program like this:

     # apt-cdrom add

with the Debian CD-ROM in the drive. It will mount the CD-ROM, and if it's a valid Debian CD it will look for package information on the disk. If your CD-ROM configuration is a little unusual, you can also use the following options:

     -h           - program help
     -d directory - CD-ROM mount point
     -r           - Rename a recognized CD-ROM
     -m           - No mounting
     -f           - Fast mode, don't check package files
     -a           - Thorough scan mode

For example:

     # apt-cdrom -d /home/kov/mycdrom add

You can also identify a CD-ROM, without adding it to your list:

     # apt-cdrom ident

Note that this program only works if your CD-ROM is properly configured in your system's /etc/fstab.


3.4 The APT configuration file

APT uses /etc/apt/apt.conf as its main configuration file. Although, as you will find out, there's no file named like that in a default install, you can safely create one and add your edits there. If you prefer, there's a more modular way of handling configuration: you can place individual files with whatever names you choose into /etc/apt/apt.conf.d/.

Beware of two facts when you choose the modular way: some Debian packages will drop their configuration stuff into that directory, so you have to try to prevent name clashes by, for example, adding a -local suffix to the name. Also, the configuration is read ordered by the file name, so you can add a number at the very beginning of your filename to position it on the sequence. For example, you can name it 00000myconf-local if you want to make sure it will be the first configuration to be considered.

To know the syntax and options accepted by those configuration files, check out the apt.conf(5) manpage.


3.5 Adjusting APT priority for packages

APT uses a prioritization algorythm to decide what repository it should grab a given package from. Here's a simple example:

     $ apt-cache policy apt-howto
     apt-howto:
       Installed: 1.8.10.3-1
       Candidate: 1.8.11-1
       Version table:
          1.8.11-1 0
             500 http://ftp.nl.debian.org sid/main Packages
      *** 1.8.10.3-1 0
             500 http://ftp.nl.debian.org sarge/main Packages
             100 /var/lib/dpkg/status

I have two sources here: a sid and a sarge one, and that's all.

The installed version is marked with ***. We can see its installed because of the mention of the /var/lib/dpkg/status file, too, which holds the information about the current state of the system. We can also see that the package comes from sid. The sarge version is also listed as available.

APT gives priority 100 for installed packages, as we can see, and 500 for all other sources with a single exception: the experimental suite, which, as we already said, is treated in a special way by many tool. APT's algorythm will prefer to install packages from sources with higher priority. If priorities are the same, then it will prefer the highest version. You can see that by looking at the Candidate field, which lists the newer version, from unstable, as candidate for instalation: it wants to upgrade it.

If you want to have the sid source only to install selected packages and don't want APT to automaticaly consider packages from that source as candidates for upgrades, then you must tweak its priorities. You do that using the Archive field of the Release file of the source you want to give priority to. You can find that information out by looking at the Release file which the update process downloaded:

     # grep ^Archive /var/lib/apt/lists/ftp.nl.debian.org_debian_dists_sarge_main_binary-i386_Release
     Archive: stable

Notice that the filename changes depending on your source line. To make APT keep your packages at the stable suite, then, you add a file with the following contents to /etc/apt/apt.conf.d/:

     APT::Default-Release "stable";

Then, APT policy will have changed:

     $ apt-cache policy apt-howto
     apt-howto:
       Installed: 1.8.10.3-1
       Candidate: 1.8.10.3-1
       Version table:
          1.8.11-1 0
             500 http://ftp.nl.debian.org sid/main Packages
      *** 1.8.10.3-1 0
             990 http://ftp.nl.debian.org sarge/main Packages
             100 /var/lib/dpkg/status

APT will give priority 990 for its default source for any package, the other sources remain just like before. Packages from other sources which are installed will have their priority raised from 100 to 500. Why is APT not going to downgrade them? Because APT will only consider a downgrade in case something is given a priority above 1000. That means, though, that APT will not automaticaly upgrade the versions from the non-default sources unless the tool you're using wants to try to to help you there, which is the case for aptitude.

Defining priority for groups of packages based on many other criteria is also possible by using the /etc/apt/preferences configuration file. You can even convince APT to try to downgrade your whole system, althought that's not supported and should not be tried by the faint of heart. You can have more information about that by reading the apt_preferences(5) manpage..


3.6 Using APT through a proxy

If you are using APT in a network in which all http and ftp connections are made through a proxy, then you'll have to setup APT to use that proxy. You can do this by editing the /etc/apt/apt.conf configuration file or by placing a configuration file inside the /etc/apt/apt.conf.d/ directory, which makes it is easier to organize the configuration stuff (take a look at The APT configuration file, Section 3.4).

If that file does not exist, then create it and add lines like these:

     Acquire::http::proxy "http://proxy:port";
     Acquire::ftp::proxy "http://proxy:port";

Replace proxy and port for those given by your network administrator. You can also specify user and password if the proxy requires like this:

     Acquire::http::proxy "http://user:password@proxy:port";

There are many other useful options you can set for APT on the /etc/apt/apt.conf configuration file, see The APT configuration file, Section 3.4.


[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ next ]


APT HOWTO

2.0.0 - September 2005

Gustavo Noronha Silva kov@debian.org