Search notes:

Debian

Ubuntu builds on Debian's architecture.

Debian Policy Manual

The Debian Policy Manual describes the policy requirements for the Debian distribution, including

Debian Archive

The Debian Archive contains the packages which constitute the Debian system (but see the main area below)
The Debian Archive is described in Section 2 of the Debian Policy Manual.

Areas

Packages of the Debian Archive are located in different areas such as
  • main
  • contrib
  • non-free
  • non-free-firmware (?)

Main area

The main area consitutes a Debian distribution (as opposed to the Debian system, see above).
No package in the main area is dependent on any software that is not also found in the main area.

Contrib area

The contrib area contains supplemental packages that are dependent on software outside of the distribution to either build or execute.

Packages

Package name

Packages are identified by their names (which must therfore be unique in the Debian Archive).
This name is also found as part of the .deb file's name.

Package sections

Packages in the main, contrib and non-free areas are grouped into sections
The area and section name of a package is stored in the Section control record. If the area is main, this value is omitted. Thus, possible values are
Some sections (for main?) include
admin
cli-mono
comm
database
debian-installer Special packages used by the installer, not used for normal Debian packages
debug
devel
doc
editors
education
electronics
embedded
fonts
games
gnome
gnu-r
gnustep
graphics
hamradio
haskell
httpd
interpreters
introspection
java
javascript
kde
kernel
libdevel
libs
lisp
localization
mail
math
metapackages
misc
net
news
ocaml
oldlibs
otherosfs
perl
php
python
ruby
rust
science
shells
sound
tasks
tex
text
utils
vcs
video
web
x11
xfce
zope

Package priority

Each package is associated with a priority level.
This value is set in the metadata for the Debian archive and is included in the package's control file.
The list of recognized priority levels is
required Necessary for the proper functioning of the system (usually, this means that dpkg depends on these packages). Systems with only the required packages installed have at least enough functionality for the sysadmin to boot the system and install more software. Packages with this level include base-files, base-passwd, bash, libc-bin, passwd, debianutils, mount etc.
important Programs which one would expect to find on any Unix-like system (for example adduser, debconf, nano vim-tiny, apt and apt-utils)
standard These packages provide a reasonably small but not too limited character-mode system. This is what will be installed by default if the user doesn’t select anything else. Packages with this level include bc, perl, wget, dbus, media-types etc.
optional The vast rest of packages (if not extra).
extra Deprecated in favor of optional.
The union of the packages with level required and important form the base system.
Two packages that both have a priority of standard or higher must not conflict with each other.
Packages with a priority of optional may conflict with each other.
dpkg-query in combination with grep allows to search for packages with a given priority:
$ dpkg-query -W -f='${Package} ${Priority}\n' | grep important | cut -f 1 -d' '

Package format

All packages must be provided in .deb format so that they can be installed and managed with dpkg.

TODO

Interesting packages

Some interesting packages, imho, include:
base-files Contains the basic filesystem hierarchy of a Debian system and files like /etc/debian_version, /etc/dpkg/origins/debian, /etc/host.conf, /etc/issue, /etc/issue.net, /etc/os-release, /etc/update-motd.d/10-uname, /usr/lib/os-release
base-passwd Template files for /etc/passwd and /etc/group (stored in /usr/share/base-passwd) and the update-passwd utility which makes sure that UIDs and GIDs in the 0-99 range are consistent with the Debian master copies.
build-essential which is dependent on libc6-dev (libc-dev?), gcc, g++, make and dpkg-dev
ca-certificates /usr/sbin/update-ca-certificates, /usr/share/ca-certificates/*, /usr/share/doc/ca-certificates/*
certbot Configuration of HTTPS using Let's Encrypt.
console-setup Executables such as setupcon and ckbcomp
coreutils Essential shell commands: cat, cp, mv, rm, touch, tail, wc and many more. Compare with the package 9plan
debconf Configuration management system for Debian packages.
debianutils Commands such as run-parts, installkernel, which, add-shell
debian-keyring Keyrings of GnuPG, and keys of Debian developers and maintainers, installed in /usr/share/keyrings/debian-*. The authorative source for keyring information is available with rsync at keyring.debian.org::keyrings/keyrings/ and a public view in this git reposiotry. See also debian-archive-keyring
dpkg Low-level tools to add and remove Debian packages.
diffutils diff, cmp, diff3, sdiff
init-system-helpers Tools that are necessary for switching between the init systems that Debian contains (e. g. sysvinit or systemd).
keyboard-configuration Keyboard preferences in /etc/default/keyboard.
libc6 Files such as /etc/ld.so.conf.d/x86_64-linux-gnu.conf, /lib/x86_64-linux-gnu/lib*.so
libc-bin Utility programs and files related to the GNU C Library, for example: /etc/ld.so.conf.d/libc.conf, /sbin/ldconfig, /lib64/ld-linux-x86-64.so.2, ldd, getent etc.
linux-headers-$(uname -r) /usr/src/linux-headers-$(uname -r)
linux-image-$(uname -r) Files such as System.map.$(uname -r), /boot/config-$(uname r), /boot/vmlinuz-$(uname -r); files located under /lib/modules/$(uname -r) (*.ko files, modules.builtin, modules.buildin.modinfo and modules.order)
login /bin/login (the program that invokes a user shell on a virtual terminal), nologin, su; /etc/login.defs
mesa-utils glxinfo, glxheads, glxgears, glxdemo
pkg-config Managing compile and link flags (see also the pkg-config binary).
procps Utilities related to the proc filesystem (/proc): free, kill, pgrep, pidwait, pkill, pmap, ps, pwdx, skill, slabtop, snice, tload, top, uptime, vmstat, w, watch, sysctl. Compare with package psmisc.
psmisc Utilities related to the proc filesystem (/proc): fuser, killall, peekfd, pslog, pstree, pstree.x11. Compare wth package procps.
software-properties-common add-apt-repository and apt-add-repository
sysstat System performance tools: sar, iostat, mpstat, pidstat, sadf etc.
util-linux See here
xdg-user-dirs Management of well known directories found in the home directory.
xserver-xorg-core XOrg X server. See also the package libx11-dev (which comes with files such as /usr/include/X11/Xlib.h), libxt-dev (which includes /usr/include/X11/Intrinsic.h) and libxaw7-dev (/usr/include/X11/Xaw/*)

Determining version

$ Linux/shell/commands/lsb_release -d
No LSB modules are available
Description:	Debian GNU/Linux 12 (bookworm)

See also

dpkg is Debian's package manager.
/etc/debian_version, /etc/debconf.conf

Index