Jedes Paket beinhaltet ein Feld namens Priority
– englisch
für „Priorität“. Dabei geht es aber weniger um eine Rangfolge von
Paketen, sondern um die Wichtigkeit eines Pakets bzw. um die
Wahrscheinlichkeit, dass Sie dieses Paket installieren möchten.
Debian kennt die folgenden fünf Prioritätsstufen:
Die Begriffe in Klammern geben die Schlüsselworte wieder, die in der Paketbeschreibung genutzt werden. Jede dieser o.g. Stufen hat eine bestimmte Bedeutung.
In Abschnitt 8.9, „Pakete nach Prioritäten finden“ lesen Sie, wie Sie mit aptitude
Pakete mit einer spezifischen Priorität finden.
Dieser Prioritätsstufe sind Pakete zugeordnet, die für die korrekte
Funktion des Betriebssystem unbedingt erforderlich sind. Dazu gehören
beispielsweise dpkg, coreutils für die GNU Core Utilities mit den
Befehlen wie ls
, rm
, cp
, mv
, das Init-System (seit Debian 8
Jessie das Metapaket init) und die C-Standard-Bibliotheken (libc6
auf den meisten Architekturen).
Entfernen Sie eines oder mehrere Pakete mit dieser Prioritätsstufe, kann
das Ihre Installation so stark beschädigen, dass selbst das Werkzeug
dpkg
nicht mehr funktioniert.
Systeme, die nur aus Paketen der Prioritätsstufe „erforderlich“ bestehen, sind zwar lauffähig, aber im Normalfall nahezu unbenutzbar, da z.B. Pakete wie APT, less oder ein Texteditor fehlen. Die letztgenannten sind zum Betrieb nicht zwingend erforderlich[5].
In diese Prioritätsstufe gehören alle Pakete, die auf jedem UNIX- bzw. Debian-System zu erwarten sind oder ohne die das System nur sehr schwierig zu warten wäre. Das schließt auch Server ohne Monitor mit ein.
Als Pakete gehören neben apt u.a. gnupg und debian-archive-keyring
für den Debian-Archiv-Schlüsselring zum Überprüfen der Signaturen von
Paketlisten (siehe Abschnitt 8.32.1, „Prüfung eines Paketes auf Unversehrtheit“) dazu, ebenso
OpenSSL, ein DHCP-Client, zwei Texteditoren (eine abgespeckte Variante
von Vim sowie Nano), Kommandozeilenwerkzeuge zur Prozessverwaltung
(ps
, kill
, free
, top
, uptime
aus dem Paket procps), ein
Syslog-Daemon, ein Cron-Daemon, Man-Pages, Netzwerk-Programme wie
ping
, traceroute
und iptables
sowie das
Netzwerkschnittstellenverwaltungssystem ifupdown
.
Diese Prioritätsstufe beinhaltet weder große Applikationen noch graphische Programme. Insbesondere gehören weder GNU Emacs noch TeX noch das X Window System oder das xterm in diese Kategorie.
Haben Sie alle Pakete dieser Prioritätsstufe installiert, verfügen Sie über ein nicht allzu großes, aber auch nicht zu unkomfortables System ohne graphische Bedienoberfläche. Ein solches System wird im Debian Installer ausgewählt, wenn Sie als Administrator bei der Installation nicht explizit etwas anderes festlegen. Es enthält nur wenige größere Anwendungen und Daemons.
Dazu gehören u.a. ein abgespeckter Exim als lokales
Mail-Server-Programm, die E-Mail-Programme mutt
und mailx
, eine
vollständige Perl-Installation (d.h. Perl mitsamt allen
„Core“-Modulen[6]),
Python, Client-Anwendungen für SSH, FTP, Telnet, NFS und Whois, ein
Text-Modus-Webbrowser (w3m
) und der allgegenwärtige
Textdateien-Betrachter less
. Außerdem ist reportbug
enthalten, ein
Programm zum Melden von Fehlern in Debian (siehe dazu „Bugreports
anzeigen“ in Abschnitt 37.3, „Bugreports anzeigen“).
Dies ist in gewisser Weise der Standardwert für die Priorisierung eines Pakets. Alle Pakete, die in keine der anderen Stufen gehören, werden dieser Prioritätsstufe zugeordnet. Sie enthält deswegen auch den Großteil aller Pakete in Debian. Optional bedeutet in diesem Kontext, dass diese Pakete nicht von jedermann benötigt werden.
In dieser Prioritätsstufe sind einerseits Pakete, die im Konflikt mit Paketen aus den anderen Prioritätsstufen stehen. Dazu zählen z.B. alternative Mail-Transport-Agents wie Postfix, alternative Cron-Daemons wie Cronie oder alternative Syslog-Daemons wie Syslog-NG oder die Syslog-Implementation aus Busybox.
Andererseits enthält sie aber auch Pakete, die nur in ganz bestimmten Fällen gebraucht werden, z.B. Programme zur Nutzung exotischer Hardware oder nur in bestimmten Umfeldern vorkommenden Daten, Pakete mit Debug-Symbolen für andere Pakete, Übergangspakete, etc. Beispielsweise sind viele Pakete aus dem Bereich „Wissenschaft“ mit dieser Priorisierung versehen.
Zusätzlich zu den bereits oben vorgestellten Prioritäten gibt es noch die Markierung essential. Diese Markierung tragen nur sehr grundlegende Pakete.
Eintrag in der Paketbeschreibung.
Essential: yes
Pakete mit dieser Markierung müssen nicht explizit als Abhängigkeit bei anderen Paketen deklariert werden. In der Regel sind alle Pakete der Prioritätsstufe „erforderlich“ in dieser Form markiert, von denen kein anderes Paket dieser Stufe abhängt. Somit wird auch bei der Entfernung eines nicht-essentiellen Pakets der Stufe „erforderlich“ gewarnt. Das passiert jedoch nicht, wenn bei einer Umbenennung eines solchen Pakets das alte Paket entfernt wird, um für das neue Paket Platz zu machen oder weil es nicht mehr gebraucht wird (d.h. irgendwann nicht mehr notwendig ist).
Unter „Pakete nach Prioritäten finden“ in Abschnitt 8.9, „Pakete nach Prioritäten finden“ lesen Sie, wie Sie auflisten, welche Pakete genau auf Ihrer Version von Debian als essentiell markiert sind.
Weiterhin hat die Markierung „essentiell“ den Effekt, dass sich
beispielsweise auch dpkg
weigert, solche Pakete zu entfernen. Mit dem
zusätzlichen Parameter --force-remove-essential
übergehen Sie diese
Voreinstellung und können die Aktion trotzdem durchführen (siehe dazu
„Paketoperationen erzwingen“ in Abschnitt 8.45, „Paketoperationen erzwingen“).
apt-get
und aptitude
entfernen diese Pakete nur nach Eingabe des
vollständigen Satzes „Ja, tue was ich sage!“ (apt-get
) bzw. „Mir ist
klar, dass das eine sehr schlechte Idee ist.“ (aptitude
). Diese Sätze
werden jeweils in der eingestellten Sprache Ihres Debiansystems
angezeigt (Lokalisierung), sofern eine Übersetzung vorhanden ist.
Nachfolgendes Beispiel zeigt die Bildschirmausgabe vor der Entfernung
des Pakets init [Debian-Paket-init].
Eingabeaufforderung von apt-get
vor der Entfernung des essentiellen Pakets init.
# apt-get remove init Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig Die folgenden Pakete werden ENTFERNT: init WARNUNG: Die folgenden essentiellen Pakete werden entfernt. Dies sollte NICHT geschehen, außer Sie wissen genau, was Sie tun! init 0 aktualisiert, 0 neu installiert, 1 zu entfernen und 0 nicht aktualisiert. Nach dieser Operation werden 29,7 kB Plattenplatz freigegeben. Sie sind im Begriff, etwas potentiell Schädliches zu tun. Zum Fortfahren geben Sie bitte »Ja, tue was ich sage!« ein. ?]
[5] Hat z.B. ein System keine Netzwerkanbindung
und wird deswegen nur sehr selten aktualisiert, ist APT nicht notwendig.
Aktualisierungen können auch auf anderen Wegen, bspw. via USB-Stick oder
SD-Karte mittels dpkg
eingepflegt werden. Allerdings sind dann
Abhängigkeiten ggf. manuell aufzulösen. Bei reinen Paketaktualisierungen
ist dies nur sehr selten ein Problem, da die Abhängigkeiten im
Normalfall auch schon von der vorherigen Paketversion gebraucht
wurden.
[6] Perl selbst und ein paar wenige Perl-Module sind im Paket perl-base welches „essentiell“ ist.