debram(1) look .debs up in the Debian Ramification


debram [ ] [ -d package ]... [ -m maintainer ]... [ ramification... ]


Debian GNU/Linux provides thousands upon daunting thousands of software packages. Sorting them into broad classes then dividing and redividing them into finer, more specific branches, this command ramifies Debian's packages in much the same manner as a university library ramifies its books. If you know what you want your computer to do but do not yet know the package to do it, you can find the package here.


Give the command
debram -cx

(Omit the `c' option if your terminal has a white background or does not support color.) Now explore ram 1000 with

debram -cx 1000

Observe the output, then retrieve a plan of ram 1100 with

debram -cp 1100

Repeat the same operation with the abbreviation

debram -cp 11

Again, but with cross-references.

debram -cpx 11

Show the trunk above 1100.

debram -cpt 11

Retrieve 1100's plan, showing also the trunk.

debram -cptr 11

Enough plans. Let's look at some packages. Notice 1112 File Listing and Finding in the previous output, then

debram -cx 1112

(Try adding a -w option to the command if your terminal is at least 132 columns wide.) Now list the same ram in brief.

debram -cXD 1112

Again, and show the trunk this time.

debram -cXDt 1112

Be very brief: list only the package names.

debram -1 1112

Limit the listing to packages currently installed (or dpkg-selected).

dpkg --get-selections | debram -cXDs 1112

What packages does E. Zini keep?

debram -cm 'E. Zini'

Suppose that you have been looking for the tar package, but have not seen it yet. Find it now.

debram -cd tar

Retrieve the entire Ramification plan.

debram -cp | more -f

Now you know enough to begin using the debram(1) profitably. If you have or can open a text terminal at least 132 columns wide, you will also wish to try the -w option:

debram -cxrw 3110 | less -r

(Press `q' to exit less(1).) To view the long, long listing of the entire ramification at once, enter

debram -cxrw | less -r

omitting the -w if your terminal is only 80 columns wide.


Basic Output Formatting

-c, --color
Color-code the output (recommended).
-w, --wide
Output in 132-column format. This is recommended if your terminal is sufficiently wide. (See below for a way to boot Linux into a 132x60 terminal.)

Other General Options

Find the named package.
Find all maintainer's packages.
-p, --plan
Print the ramification plan or table of contents. If a ramification is specified, print a partial plan descending from it. (Implies -r, except when -t is given.)
-r, --recursive
Print the entire tree under the given ramification.
-t, --trunk, --recursive-up
Print the trunk above the given ramification. That is, print the ram, the parent ram, the grandparent ram, and so on, up to the root of the tree.
-x, --expand-xref
Print cross-references in long-form, showing each ram's title rather than just its number.

Selective Output Suppression

The -A and -B options focus debram(1)'s overall operation. Usually debram(1) prints the tables both of end-level ramifications (such as 1311 and 1312, each having a table of Debian packages) and of higher-level ramifications (such as 1350 and 1300, each having only a table of subramifications); but you may not always wish the two kinds of tables intermixed, especially when requesting an -r or -T listing. The -A (--no-end-level) and -B (--only-end-level) options respectively cause debram(1) not to print the end-level and higher-level ramification tables.
-A, --no-end-level
Omit package tables.
-B, --only-end-level
Omit subramification tables.
-T, --no-title
Omit ramification titles. (Implies -X.)
-X, --no-xref
Omit cross-references.
-D, --no-desc
Omit package descriptions.
-M, --no-maint
Omit names of package maintainers.
-N, --no-count
Omit per-ramification .deb counts.
-P, --no-pri
Omit package priorities.
-1, --names-only
Print package names only. This option is equivalent to -BTXDMNP.

Manual Character-Encoding Selection

debram(1) defaults appropriately for your locale, so selecting a character encoding manually is optional. If your locale is the default C/POSIX non-locale, then debram(1) defaults to Latin-1---which is technically nonstandard behavior but for debram is usually the right thing to do. Use -L if you definitely want pure ascii.
-l, --latin1
Output and accept arguments in Latin-1 (iso-8859-1).
-L, --ascii, --no-latin1
Output and accept arguments in ascii. (See also the -. option.)
-u, --utf8
Output and accept arguments in utf-8 (Unicode) rather than Latin-1.

Other Options

-., --ascii-dots
In the output, fill blanks with ascii's `.' full-stop character (rather than the middle dot, which ascii does not provide; see also the -L option).
-s, --selections
Print only packages named on stdin. The principal use of this option is in ``dpkg --get-selections | debram -s ...'', which causes debram to ignore packages you have neither installed nor selected for installation. As such, the option accepts package names on standard input, one name per line, each name optionally followed the word ``install'' (which debram ignores).

Seldom Used Options

-j, --pri-one-color
Output the package-priority column all in the same color: do not differentiate.
Substitute clear-text file for the library data file.
Substitute compressed file for the library data file.


-?, --help
Give a help list.
Give a short usage message.
-V, --version
Print the program version.


A ramification is a branch of the Debian archive whose packages serve approximately the same application domain or interest similar groups of users. The first division of the archive follows the traditional GNU/Linux manpage hierarchy, with ram 1000 corresponding roughly to man section (1), ram 3000 to section (3), and so forth. Further subramifications successively focus on tighter domains.

debram(1) works on the ramifications you specify on the command line, defaulting to the umbrella metaramification 0000 if you specify none. The useful -r recursive option causes debram(1) to select the named ramifications plus all subramifications branching recursively from them. Many rams cross-reference other rams across the tree; by default the program concisely prints only cross-reference ram numbers, but with the -x option it prints expanded cross-reference information.

The branch-numbering system needs little explanation, except perhaps in one respect: a ram number's count of non-zero digits always reveals its ram's level. Thus, for instance, 5060 and 5600 would each be second-level rams under the top-level 5000, but 5660 would be a third-level ram under the second-level 5600.

If you give fewer than four ramification digits, debram(1) completes the number with zeros. Thus 8 is a valid abbreviation for 8000, for example.

Although the usage is not entirely consistent (even within this manpage),

  • the top-level rams like 1000 and 8000 are usually called sections (after the traditional ``man section'' nomenclature),
  • the second-level rams like 1100 and 1200 are usually called divisions,
  • the third-level rams like 1110 and 1120 are usually called groups, and
  • the end-level rams like 1121 and 1140 (the latter of which is an end-level ram despite its number's ending in a zero) are usually called branches.


As an autobiographer cannot cover the last events of his life, neither can debram cover the last packages to enter Debian's stable release. Debram is fine as is, but if you prefer complete full coverage, then after the release you can look for a revised debram-data package bearing the same number as the version you now have (run ``debram -V'' for the number) but with a single letter appended. For example, if you now have version 1.2.3, then you can look for debram-data version 1.2.3a, 1.2.3b or the like. Besides completing the coverage of the stable release, such an update will undoubtedly also correct some errors and oversights; so, it is worth getting if you want it.

The easiest place to get the update if you time it right will be from Debian's unstable archive. However, that archive must eventually drop it in favor of a new development version, which is not what you want if you are running Debian stable. A more lasting source for the update will be

(Of course, no update can be guaranteed to appear---what is guaranteed to appear is the debram-data you already have---but an update did appear for the last stable release of Debian and is equally likely to appear for this one. Look for it within four to six months.)

If running Debian stable, you need not and probably should not update the debram package itself; it suffices to update debram-data. Furthermore, for Debian stable you should only update to the same version with the single letter appended, as 1.2.3a. Versions bearing later numbers (like 1.2.4 or 1.3.0 against 1.2.3) are development versions toward the following Debian release; they are probably not what you want.


debram(1) was originally programmed to provide the most easily readable output when invoked with the -cw options on a 132-column wide terminal---especially on the standard non-X(7) Linux console (see console(4)). Fewer users today use the console than used to, and X(7) terminals typically show 132 columns or more in any case, so it's not as important an issue as it used to be. However, some console users may still be interested to learn how to widen their consoles to the standard wide-console width of 132 columns. This section of the man page tells how it can be done, at least on some computer hardware.

Exactly how to widen your Linux console depends on your specific hardware and OS installation. Nevertheless the following instructions should lead you in the correct direction.

Print a hard copy of this manpage with

man -Tps 1 debram | lpr

Reboot while holding <Shift> down (without the <Shift>, some Linux machines are programmed never to offer you a boot prompt). At the boot prompt, enter

Linux video=vga16:off vga=ask

(Your kernel image may have some other name than ``Linux''. Also, the video= option may not be necessary for you. Adapt your boot-prompt entry accordingly.)

Notice that the kernel offers you the choice of several video modes. If you do not yet see 132x60, scan.

Choose 132x60. (The kernel may offer you hexadecimal numbers but demand decimal numbers in return. If you are reading this section of the manpage, you probably already know how to convert hexadecimal to decimal, but if you feel uncertain then refer to the table in ascii(7).)

If all is well the kernel now boots into a 132x60 console.

The foregoing procedure naturally gives you 132x60 only once: the kernel returns to 80 columns the next time you boot it. Configuring the kernel to boot 132x60 by default requires editing /etc/lilo.conf then running lilo(8) (presuming that you are booting with lilo(8); else see Grub below). The author has added the lines


to the appropriate stanza of his own /etc/lilo.conf on at least one machine, but yours may need something slightly different to achieve the desired effect. (The author got the number 0x123 for his video hardware during the boot-time video-mode scan referenced above. You can do likewise to obtain the needed number for your video hardware.)

You may like the 132x60 non-X(7) Linux console. The author does. Try it if you wish.


The foregoing assumes that you boot your Debian system with lilo(8). A modern Debian system, however, is more likely booted with grub(8). The author does not yet know the latter boot system well enough to write a new man page section on it, but perhaps the present section provides information even grub(8) users will find of interest or use.


the default library data file (it is human-readable, too)
reference documents including the Command Selection Guide.


These variables optionally specify your locale, which determines how debram(1) outputs non-ascii characters by default. See locale(7) for general information about locales.


The -c or --color option produces pleasing colors only on a terminal with a black background, such as xterm and the standard non-X Linux console. Other common terminals, such as the standard Gnome terminal, have white backgrounds by default. Users of these terminals probably will not find the -c option very useful.

Non-i386 architectures enjoy a handful of special packages not available on i386. Debram does not cover these. Debram probably should at least cover all the special amd64 packages, but it doesn't, yet.

Unavoidably in a ramification of this size, several packages inadvertently yet undoubtedly remain misramified. Report misramifications sensibly, please, to Debian's Bug Tracking System. If you are running Debian stable, please check the latest debram-data in Debian unstable before reporting the bug.


Thaddeus H. Black <[email protected]>

Although the changelog details the direct parts several have played in debram development, the author particularly wishes to acknowledge the contributions of his Debian sponsor Giacomo Catenazzi, whose review and counsel have made debram significantly better a package than it otherwise would have been; and of the debtags development team led by Enrico Zini, who have welcomed the debram (they might easily have done otherwise) and have gone out of their way to integrate it successfully into the larger debtags structure.


Copyright (C) 2002-2006 Thaddeus H. Black

debram(1) and all the files included in the debram package are free software; you can redistribute them and/or modify them under the terms of the GNU General Public License, Version 2.