The debian packages console-data, console-setup, console-common and console-tools (maybe even more) all seem to do the same thing. What are the differences and which ones should I use?
What is the difference between console-data, console-setup, console-common and console-tools?
debian
Debian likes to split applications into small units, even when 99% of people would want to install everything, for the sake of the 1% with unusual needs. You exagerate however when you claim that they all seem to do the same thing the descriptions are pretty informative.console-data contains architecture-independent data such as keymaps and fonts. There is a single binary package for all architectures, which saves space on package mirrors and download bandwidth on sites with installations of multiple architectures. The data package isn't useful by itself, it'll get pulled in as a dependency of programs that use that data.console-tools contains the programs that use the data in console-data: set a keymap with loadkeys, set a font with consolechars, etc. The package also contains some tools to manage text consoles such as chvt, openvt, ... This package recommends console-data, but does not depend on it, because you don't have to have all the keymaps and fonts: you may want the package just for the other tools, or to load one keymap.console-common contains just the infrastructure necessary to load a keymap at boot time. It depends on both console-data (for the keymaps) and console-tools (for the loadkeys program). This package is there to provide an easy configuration; if you want a minimalist system without all the keymaps, you can do the same job manually.console-setup is an extra program to convert X11 keymaps into Linux console keymaps.You missed kbd, which is an alternative implementation of console-tools. I don't know what the differences are.For most users, the answer to which ones should I use is none just let your distribution pull it whatever it wants by default. You won't be interacting with the console much anyway: as soon as X starts, all of this is irrelevant.