base-config − Debian base system configuration


base-config [new]


base-config is the program that was run when you first rebooted into your newly installed debian system. It walks you through setting up the system and downloading additional software, and so forth. The program can be run at any later date to walk you through essentially the same process again.


base-config generates a menu of choices from the contents of /usr/lib/base-config/, and from debconf templates.

The .mnu files in /usr/lib/base-config/ control whether the menu item appears only on new installs (Only-New: true), whether debconf can already be running when the item is run (Debconf: true), a numeric Order controls placement in the menu. If a .mnu file contains "Exit-Menu: true", then base-config will terminate after running that menu item. Finally, a "Changes-Menu: true" line will make base-config rebuild the menu after running the menu item.

The .tst files in /usr/lib/base-config/ are run when base-config builds the menu and must return true for that menu item to appear on the menu.

The menu items are taken from debconf, by looking for items in the debconf database named base-config/menu/whatever.

When a menu item is selected, the corresponding program, in /usr/lib/base-config is run. If this is a fresh install onto a new debian system, the program receives "new" as its first argument.

base-config checks the return codes of each of the programs. If a program returns nonzero, the main menu is displayed (this may involve lowering the debconf priority).

Generally the user is advanced down the menu from item to item as each succeeds. If a menu item needs to jump back to a previous item in the menu, or skip over a subsequent item, it can write the name of the next menu item to show to the file "jump-to" in the current directory.


Every base-config run is logged to /var/log/base-config.log. /var/log/base-config.timings contains timing information to go with the log. This allows replays of base-config runs using the replay(1) utility.

/var/log/debian-installer/cdebconf, if it exists, is used by base-config on new installs to get values from the debian-installer first stage install.

Other packages can drop files into /usr/lib/base-config/, and add menu titles in debconf, and they will be added to the menu. It is very strongly encouraged that any such programs communicate with the user entirely via debconf, so that the base configuration maintains a consistent and professional look.

Another useful thing for custom distributions is /usr/share/base-config/debconf-seed. If that directory exists, every file in it will be loaded into the debconf database using debconf-set-selections(1)

If the file /var/log/debian-installer/debconf-seed is created by the debian-installer, it will also be loaded into the debconf database.


The following environment variables influence base-config. These variables may be set at run time, or for new installs, may be passed to the kernel at the lilo(8) (or other bootloader) command line. Consult your boot loader’s documentation for details. For example, lilo can be booted with something like "linux DEBIAN_FRONTEND=readline".

Control various things about debconf(7)


By default, base-config deletes the debs that debootstrap(8) used to install the system. This is useful on very low disk installs. If you don’t want that to be done, and prefer that the debs be kept, set this variable to "yes".


Joey Hess <joeyh [AT]>