10.3. Konfigurationsdateien von APT im Detail

10.3.1. /etc/apt/apt.conf(.d) verstehen

In der Datei /etc/apt/apt.conf bzw. in den Dateien im Verzeichnis /etc/apt/apt.conf.d/ stellen Sie viele Aspekte von APT und anderen APT-Frontends ein. Alle diese Einstellungen überschreiben Sie bei Bedarf explizit auch auf der Kommandozeile (siehe Abschnitt 10.4, „Konfigurationsoptionen von APT“). Darunter fallen u.a.:

  • wie oft APT selbstständig Paketlisten und Pakete herunterladen soll (Schlüsselwort APT::Periodic),
  • ob empfohlene (Recommends) oder vorgeschlagene Pakete (Suggests) per Default installiert werden sollen (Schlüsselworte APT::Install-Recommends und APT::Install-Suggests),
  • welche Pakete nie automatisch entfernt werden sollen (Schlüsselwort APT::NeverAutoRemove),
  • ob Paketlisten lokal entpackt oder komprimiert gespeichert werden sollen,
  • welche Kompressionsalgorithmen beim Herunterladen von Paketlisten bevorzugt werden sollen (alle Schlüsselworte beginnend mit APT::Compressor),
  • wohin APT Paketlisten und Pakete herunterladen soll. (Sollten Sie nicht systemweit ändern, kann aber beim Bearbeiten einer Chroot-Umgebung von außen durchaus als Einstellung auf der Kommandozeile nützlich sein.)
  • An- und Abschalten von Fortschrittsbalken (verfügbar ab APT 1.0) (Schlüsselwort Dpkg::Progress-Fancy),
  • wo Changelogs heruntergeladen werden können,
  • welche Übersetzungen der Paketlisten heruntergeladen werden sollen,
  • welche Parameter APT an dpkg-deb übergibt,
  • Hooks, z.B. vor und nach dem Auspacken von Paketen (siehe Abschnitt 10.5, „APT-Hooks“)
  • Konfigurationen für beliebige Tools im APT-Ökosystem, die ebenfalls diese Konfigurationsdateien verwenden, z.B. aptitude, adequate [Debian-Paket-adequate], whatmaps [Debian-Paket-whatmaps], etc.

Um das Vorgehen besser zu verstehen, werfen Sie am besten einen Blick in das Verzeichnis /etc/apt/apt.conf.d/. Das nachfolgende Listing zeigt den typischen Inhalt auf einem Debian 9 Stretch. Ob und welche Dateien tatsächlich vorhanden sind, hängt von den Werkzeugen ab, die Sie auf ihrem System installiert haben.

Beispielhafter Inhalt von /etc/apt/apt.conf.d/

$ ls /etc/apt/apt.conf.d/
00CDMountPoint  01autoremove          20listchanges  70debconf
00trustcdrom    01autoremove-kernels  20packagekit
$

Die Datei 01autoremove-kernels beinhaltet bspw. Anweisungen, was mit älteren und inzwischen aktualisierten Kernelpaketen auf ihrem System passieren soll. Üblicherweise bleiben diese bei einer Aktualisierung des Pakets erhalten und werden von APT niemals automatisch entfernt. Der nachfolgende Ausschnitt demonstriert Ihnen das:

Inhalt der Datei /etc/apt/apt.conf.d/01autoremove-kernels (Ausschnitt). 

// DO NOT EDIT! File autogenerated by /etc/kernel/postinst.d/apt-auto-removal
APT::NeverAutoRemove
{
   "^linux-image-3\.16\.0-4-amd64$";
   "^linux-image-4\.9\.0-11-amd64$";
   "^linux-headers-3\.16\.0-4-amd64$";
   "^linux-headers-4\.9\.0-11-amd64$";
   "^linux-image-extra-3\.16\.0-4-amd64$";
   "^linux-image-extra-4\.9\.0-11-amd64$";
   "^linux-signed-image-3\.16\.0-4-amd64$";
   "^linux-signed-image-4\.9\.0-11-amd64$";
   "^kfreebsd-image-3\.16\.0-4-amd64$";
   "^kfreebsd-image-4\.9\.0-11-amd64$";
   "^kfreebsd-headers-3\.16\.0-4-amd64$";
   "^kfreebsd-headers-4\.9\.0-11-amd64$";
   "^gnumach-image-3\.16\.0-4-amd64$";
   "^gnumach-image-4\.9\.0-11-amd64$";
   "^.*-modules-3\.16\.0-4-amd64$";
   "^.*-modules-4\.9\.0-11-amd64$";
   "^.*-kernel-3\.16\.0-4-amd64$";
   "^.*-kernel-4\.9\.0-11-amd64$";
   "^linux-backports-modules-.*-3\.16\.0-4-amd64$";
   "^linux-backports-modules-.*-4\.9\.0-11-amd64$";
   "^linux-tools-3\.16\.0-4-amd64$";
   "^linux-tools-4\.9\.0-11-amd64$";
};
...

10.3.2. preferences bzw. preferences.d

Hier handelt es sich um eine Datei bzw. ein Verzeichnis, in welchem Sie die Priorität eines oder mehrerer Pakete festlegen (siehe dazu Kapitel 20, Veröffentlichungen mischen). Der Vorgang heißt Pinning und erlaubt es Ihnen, Pakete aus einer anderen Debian-Veröffentlichung zu verwenden — bspw. stable, testing oder unstable — ohne die Notwendigkeit, dabei gleich ihr ganzes System auf diese Veröffentlichung aktualisieren zu müssen.

Die Paketverwaltung respektiert ihre Festlegung und berücksichtigt das bei der Aktualisierung sowie bei den Paketabhängigkeiten. Genutzt wird ein Zahlenwert als Priorität — je höher dieser ist, umso mehr wird die gewählte Veröffentlichung bevorzugt. Nachfolgendes Beispiel gibt Paketen aus testing eine höhere Priorität als den Paketen aus unstable:

Veröffentlichungen priorisieren. 

Package: *
Pin: release n=testing
Pin-Priority: 900

Package: *
Pin: release n=unstable
Pin-Priority: 800

Die Datei preferences bzw. das Verzeichnis preferences.d ist ursprünglich leer. Eine detaillierte Beschreibung zu Pinning finden Sie bspw. in Abschnitt 20.4, „Paketweise festlegen“.

10.3.3. cron.daily/apt

In dieser Datei sind alle APT-bezogenen Aktionen zusammengestellt, die täglich ausgeführt werden, bspw. eine Aktualisierung der lokalen Liste der Pakete mittels apt update. Es erfordert einen zusätzlichen Eintrag für Cron in der Datei /etc/crontab.