// Datei: ./praxis/apt-und-aptitude-auf-die-eigenen-beduerfnisse-anpassen/konfigurationsdateien-von-apt.adoc

// Baustelle: Rohtext
// Axel: Rohtext

[[konfigurationsdateien-von-apt]]
=== Konfigurationsdateien von APT ===

// Stichworte für den Index
(((Debianpaket, apt)))
(((run-parts)))

APT und auch alle Programme, die APTs Bibliotheken benutzen, greifen auf
diverse Konfigurationsdateien zu. Über diese Dateien werden
unterschiedliche Funktionen abgebildet.

Alle Varianten der Konfigurationsdateien gibt es in zwei Geschmäckern:

* als einzelne Datei -- diese ist typischerweise dem lokalen
  Systemadministrator vorbehalten

* als Verzeichnis mit dem Suffix `.d`. Alle Dateien in einem solchen
  Verzeichnis, die bestimmten Regeln hinsichtlich dem Dateinamen
  entsprechen, werden so interpretiert, als wären sie an der
  gleichnamigen Datei ohne `.d` angehängt (siehe u.a. Man-Page
  `run-parts(8)`. Insbesondere dürfen keine Punkte im Dateinamen
  vorkommen. Diese Verzeichnisse werden  typischerweise von Paketen
  verwendet, um paketspezifische Konfigurationsschnipsel darin abzulegen.
  Auch Sie als lokaler Systemadministrator legen darin Dateien ab, bspw.
  über das Konfigurationsmanagement.

==== Verhalten von APT und Hooks: /etc/apt/apt.conf(.d) ====

// Stichworte für den Index
(((/etc/apt/apt.conf)))
(((/etc/apt/apt.conf.d/)))
(((APT-Hooks)))
(((Debianpaket, adequate)))
(((Debianpaket, whatmaps)))

In der Datei `/etc/apt/apt.conf` bzw. in den Dateien im Verzeichnis
`/etc/apt/apt.conf.d/` können viele Aspekte von APT und anderen
APT-Frontends konfiguriert werden. Alle diese Einstellungen
überschreiben Sie bei Bedarf explizit auch auf der Kommandozeile. Dazu
verwenden Sie als Schalter `-o`, gefolgt von der Form `<Schlüssel>=<Wert>`.
Darunter fallen u.a.:

* wie oft APT selbstständig Paketlisten und Pakete herunterladen soll
  (alle Einstellungen, die mit `APT::Periodic::` beginnen),

* ob empfohlene ('Recommends') oder vorgeschlagene Pakete ('Suggests')
per Default installiert werden sollen,

* welche Pakete nie automatisch entfernt werden sollen,

* ob Paketlisten lokal entpackt oder komprimiert gespeichert werden
  sollen,

* welche Kompressionsalgorithmen beim Herunterladen von Paketlisten
  bevorzugt werden sollen,

* wohin APT Paketlisten und Pakete herunterladen soll. (Sollte man
  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),

* 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,

* 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 8 'Jessie'.

.Beispielhafter Inhalt von /etc/apt/apt.conf.d/
----
$ ls /etc/apt/apt.conf.d/
00trustcdrom    10periodic           20packagekit           99synaptic
01autoremove    20apt-show-versions  50unattended-upgrades
10apt-listbugs  20dbus               70debconf
$
----

==== Konfigurationsdateien von Aptitude ====

// Stichworte für den Index
(((~/.aptitude/config)))
(((aptitude, lokale Konfigurationsdateien)))

`aptitude` verwendet alle Konfigurationsdateien von APT plus seine
eigenen. Diese finden Sie im Verzeichnis `~/.aptitude/` in der Datei
`config`. Hier werden auch die interaktiven Änderungen der Konfiguration
in der Textoberfläche von `aptitude` gespeichert.

Dabei verwendet die Konfiguration von `aptitude` die gleiche Syntax wie
die von APT. Sie kann auch manuell in den Konfigurationsdateien von APT
abgespeichert werden, z.B. als Datei
`/etc/apt/apt.conf.d/lokale-aptitude-einstellungen`. Diese stören APT
nicht, da sie alle mit dem Präfix `Aptitude::` beginnen.

.Beispiel einer lokalen Konfigurationsdatei von `aptitude`
----
aptitude "";
aptitude::Keep-Unused-Pattern "";
aptitude::Delete-Unused-Pattern "";
----

==== APT-Hooks ====

// Stichworte für den Index
(((APT-Hooks)))

* Begriff und Nutzen
** Ergänzungen, kleine Erweiterungen, Eingriffe
** standardisierte Abläufe um eigene, paketbezogene Schritte ergänzen

* Festlegung in der APT-Konfiguration
** wo speichert man das
** was ist erlaubt, was nicht
** was sind Gepflogenheiten

==== cron.daily/apt ====

* Begriff und Nutzen


// Datei (Ende): ./praxis/apt-und-aptitude-auf-die-eigenen-beduerfnisse-anpassen/konfigurationsdateien-von-apt.adoc
