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


APT HOWTO
Chapter 6 - Getting information about packages.


There are some front-end programs for the APT system that make it significantly easier to get listings of packages that are available for installation or are already installed, as well as to find out what section a package is in, what its priority is, what its description is, etc.

But... our goal here is to learn how to use pure APT. So how can you find out the name of a package that you want to install?

That's what this chapter intends to answer. Let's check out our options.


6.1 Discovering package names

For example, suppose that you want to reminisce about the good old days of the Atari 2600. You want to use APT to install an Atari emulator, and then download some games. You can do:

     $ aptitude search atari
     p   atari-fdisk-cross               - Partition editor for Atari (running on no
     p   atari800                        - Atari emulator for X/curses/SDL
     p   console-keymaps-atari           - Keymaps for Atari keyboards.

We find several packages related to what we're looking for, together with brief descriptions. The p letter at the begining of the line is similar to the notation used inside the curses UI aptitude uses. It means, thus, that the package is not installed. Important to notice that aptitude only searches package names by default. You can use all the search options provided by aptitude, which you can discover by reading the aptitude's User Manual. To search the descriptions, for example, you could use:

     $ aptitude search ~datari 
     p   aranym                          - Atari Running on Any Machine
     p   atari-fdisk-cross               - Partition editor for Atari (running on no
     p   atari800                        - Atari emulator for X/curses/SDL
     p   circuslinux                     - The clowns are trying to pop balloons to
     p   circuslinux-data                - Data files for circuslinux
     p   console-keymaps-atari           - Keymaps for Atari keyboards.
     [...]
     p   stella                          - Atari 2600 Emulator for SDL & X windows
     [...]

Now, that returned many more packages, as we can see. Now that we found a list of possible solutions to our problem, let's go deeper into them:

     $ aptitude show stella
     Package: atari-fdisk-cross
     Version: 0.7.1-5
     Priority: extra
     Section: otherosfs
     Maintainer: Roman Hodek <roman@hodek.net$gt;
     Uncompressed Size: 106k
     Description: Partition editor for Atari (running on non-Atari)
      Atari-fdisk allows you to create and edit the partition table of a disk
      partitioned in Atari format. It supports both the AHDI 5.0 and ICD variations
      of the Atari format. It is an interactive tool with a menu similar to PC
      fdisk, and also supports most options of PC fdisk.

In this output you have many details about the package that you want (or don't want) to install, together with the full description of the package. You can also use the apt-cache program to get informations like those. If you choose this tool, it will be able to show multiple versions of a package that are available, for example:

     $ apt-cache show muine
     Package: muine
     Version: 0.5.0-1
     Priority: optional
     Section: gnome
     Maintainer: Link Dupont <link@subpop.net>
     Depends: gstreamer-gconf (>= 0.6.4), libatk1.0-0 (>= 1.4.1), libbonobo2-0 (>= 2.4.3), libc6 (>= 2.3.2.ds1-4), libflac4, libgconf2-4 (>= 2.4.0.1), libgdbm3, libglib2.0-0 (>= 2.2.3), libgnomevfs2-0 (>= 2.4.1), libgnomevfs2-common (>= 2.4.1), libgstreamer0.6-0 (>= 0.6.1-2), libgtk2.0-0 (>= 2.2.1), libid3tag0 (>= 0.15.0b), libogg0 (>= 1.1.0), liborbit2 (>= 1:2.8.0), libpango1.0-0 (>= 1.2.1), libvorbis0a (>= 1.0.1), libvorbisfile3 (>= 1.0.1), libxml2 (>= 2.6.7), zlib1g (>= 1:1.2.1), gconf2 (>= 2.4.0), mono-jit (>= 0.30) | cli-virtual-machine, gtk-sharp (>= 0.17), gconf-sharp (>= 0.17), gnome-sharp (>= 0.17)
     Architecture: i386
     Filename: ./pool/main/m/muine/muine_0.5.0-1_i386.deb
     Size: 164314
     Installed-Size: 692
     MD5sum: 9885f13e5ef4f76b3bf6fe7bb3ea8634
     Description: Simple music player
      Muine is an innovative music player. It has a simple interface designed to
      allow the user to easily construct playlists from albums and/or single songs.
      Its goal is to be simply a music player, not to become a robust music
      management application.
      
     Package: muine
     Priority: optional
     Section: gnome
     Installed-Size: 492
     Maintainer: Link Dupont <link@subpop.net>
     Architecture: i386
     Version: 0.4.0-8
     Depends: gstreamer-gconf (>= 0.6.4), libatk1.0-0 (>= 1.4.1), libbonobo2-0 (>= 2.4.3), libc6 (>= 2.3.2.ds1-4), libflac4, libgconf2-4 (>= 2.4.0.1), libgdbm3, libglib2.0-0 (>= 2.2.3), libgnomevfs2-0 (>= 2.4.1), libgnomevfs2-common (>= 2.4.1), libgstreamer0.6-0 (>= 0.6.1-2), libgtk2.0-0 (>= 2.2.1), libid3tag0 (>= 0.15.0b), libogg0 (>= 1.1.0), liborbit2 (>= 1:2.8.0), libpango1.0-0 (>= 1.2.1), libvorbis0a (>= 1.0.1), libvorbisfile3 (>= 1.0.1), libxml2 (>= 2.6.6), zlib1g (>= 1:1.2.1), gconf2 (>= 2.4.0), mono-jit (>= 0.30) | cli-virtual-machine, gtk-sharp (>= 0.16), gconf-sharp (>= 0.16), gnome-sharp (>= 0.16)
     Filename: pool/main/m/muine/muine_0.4.0-8_i386.deb
     Size: 139864
     MD5sum: e746709ad6a6fcc1e9c46b46b3d6e5b2
     Description: Simple music player
      Muine is an innovative music player. It has a simple interface designed to
      allow the user to easily construct playlists from albums and/or single songs.
      Its goal is to be simply a music player, not to become a robust music
      management application.

For more general information about a package, you can use:

     # apt-cache showpkg penguin-command
     Package: penguin-command
     Versions: 
     1.4.5-1(/var/lib/apt/lists/download.sourceforge.net_debian_dists_unstable_main_binary-i386_Packages)(/var/lib/dpkg/status)
     
     Reverse Depends: 
     Dependencies: 
     1.4.5-1 - libc6 (2 2.2.1-2) libpng2 (0 (null)) libsdl-mixer1.1 (2 1.1.0) libsdl1.1 (0 (null)) zlib1g (2 1:1.1.3) 
     Provides: 
     1.4.5-1 - 
     Reverse Provides:

And to just find out what packages it depends on:

     # apt-cache depends penguin-command
     penguin-command
       Depends: libc6
       Depends: libpng2
       Depends: libsdl-mixer1.1
       Depends: libsdl1.1
       Depends: zlib1g

In summary, we have a range of weapons we can use to find out the name of a package we want.


6.2 Using dpkg to find package names

One of the ways to locate the name of a package is to know the name of an important file found within the package. For example, to find the package that provides a particular ".h" file you need for compilation you can run:

     $ dpkg -S stdio.h
     libc6-dev: /usr/include/stdio.h
     libc6-dev: /usr/include/bits/stdio.h
     perl: /usr/lib/perl/5.6.0/CORE/nostdio.h

or:

     $ dpkg -S /usr/include/stdio.h
     libc6-dev: /usr/include/stdio.h

Notice that this method only works to find package names of packages that are installed in your system. You'll have to use auto-apt (see How to install packages "on demand", Section 7.1) or apt-file (see How to discover to which package a file belongs, Section 6.3) to search for files on packages which are not installed. You can also take a look at the http://packages.debian.org/ website. To list the names of packages installed on your system, which is useful, for example, if you plan to clean up your hard drive, you can run:

     $ dpkg -l | grep mozilla
     ii  mozilla-browse 0.9.6-7        Mozilla Web Browser

The problem with this command is that it can "break" the package name. In the example above, the full name of the package is mozilla-browser. To fix this, you can use the COLUMNS environment variable this way:

     $ COLUMNS=132 dpkg -l | grep mozilla
     ii  mozilla-browser             0.9.6-7                     Mozilla Web Browser - core and browser

6.3 How to discover to which package a file belongs

If you want to install a package, and you can't find out what it is called by searching with apt-cache, but know the filename of the program itself, or some other filename that belongs to the package, then you can use apt-file, which is included in the package of same name to find the package name. This is done like this:

     $ apt-file search filename

It works just like dpkg -S, but will also show you uninstalled packages that contain the file. It could also be used to find what packages contain necessary include files that are missing when compiling programs, although auto-apt is a much better method of solving such issues, see How to install packages "on demand", Section 7.1.

You can also list the contents of a package, by running:

     $ apt-file list packagename

apt-file keeps a database of which files all packages contain, just like auto-apt does and it needs to be up-to-date. This is done by running:

     # apt-file update

By default, apt-file uses the same database auto-apt is using, see How to install packages "on demand", Section 7.1.


6.4 Information about packages on the Web

There are lots of web resources with informations about the packages available in the Debian distribution, most of them directed mainly towards Debian Developers, but many of them may be useful for users, too.

The Debian Packages Pages lets you search for packages that are available on the various architectures Debian supports and, also, search for the contents of all the Debian packages. There are information regarding dependencies and other relationships with packages. There are also links to download the source package and the binary package for all architectures. You can use a shortcut like http://packages.debian.org/packagename to have quick access links to a package.

The Package Tracking System provides information about what happened to the package recently, what are the TODO itens, from a Debian maintainers point of view, provides a summary of bugs reported and some more very useful information. One of the nice things about the Package Tracking System is that it lets you "subscribe" to a package to follow all the emails that the maintainer usually receives about the package. This way you can follow the development of packages that are crucial for your work or play. The http://packages.qa.debian.org/packagename shortcut works here, as well.

Finally, the Bug Tracking System provides information about known bugs in the packages distributed by Debian. This may be useful for you to find out why something does not work the way you expected and even find solutions or work-arounds through the bug logs. Also, read these pages and its documentation to be able to fill good bug reports for Debian. The http://bugs.debian.org/packagename shortcut also works here, as expected, but the BTS (Bug Tracking System) also accepts other very useful shortcuts like, for example, http://bugs.debian.org/src:packagename to show all bug reports on all binary packages provided by a given source package.


[ 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