/etc/apt/apt.conf

Aus Foxwiki
Version vom 1. April 2023, 13:26 Uhr von Dirkwagner (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Die Konfigurationsdatei <tt>/etc/apt/apt.conf</tt> stellt die zentrale Stelle für alle Einstellungen von Programmen dar, die auf APT aufsetzen. *Von allen Programmen wird zum einen die gemeinsame Konfigurationsdatei, zum anderen auch ein Kommandozeilen-Interpreter (<tt>apt-config</tt>) genutzt, um die Konfigurationsdatei auszuwerten. *Dies garantiert für alle Programme eine einheitliche Arbeitsumgebung. *Beim Start eines auf APT basierenden Programmes w…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Die Konfigurationsdatei /etc/apt/apt.conf stellt die zentrale Stelle für alle Einstellungen von Programmen dar, die auf APT aufsetzen.

  • Von allen Programmen wird zum einen die gemeinsame Konfigurationsdatei, zum anderen auch ein Kommandozeilen-Interpreter (apt-config) genutzt, um die Konfigurationsdatei auszuwerten.
  • Dies garantiert für alle Programme eine einheitliche Arbeitsumgebung.
  • Beim Start eines auf APT basierenden Programmes wird zunächst die Umgebungsvariable APT_CONFIG ausgewertet. Über diese Umgebungsvariable lässt sich eine alternative Konfigurationsdatei angeben.

Die Konfigurationsdatei ist in einer Baumstruktur organisiert und trennt verschiedene Optionen in funktionale Gruppen.

  • Werte für Optionen werden durch zwei Doppelpunkte eingeleitet, beispielsweise so: APT::Get::Assume-Yes.
  • Optionen übernehmen keine Werte von übergeordneten Gruppen.

Die Syntax der Konfigurationsdatei ist an die von Programmen wie bind und dhcp angelehnt.

  • Zeilen, die mit den Zeichen // beginnen, werden als Kommentare behandelt und ignoriert.
  • Alle weiteren Zeilen entsprechen dem Aufbau von APT::Get::Assume-Yes "true";.
  • Wichtig ist hierbei das abschließende Semikolon am Ende jeder Zeile, die Werte selbst können, müssen aber nicht von Anführungszeichen umschlossen werden.
  • Ein neuer Bereich wird durch geschweifte Klammern umschlossen.
# APT {Get {
Assume-Yes "true";Fix-Broken "true"; };};

Leerzeilen können innerhalb eines Bereiches genutzt werden, um die Datei besser lesbar zu halten.

  • Einfache Einträge können erzeugt werden, indem innerhalb eines Bereiches ein Kommando abgelegt wird und der Eintrag mit einem Semikolon beendet wird.
Beispiel
# DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};

Hier ein einfaches Beispiel für eine APT-Konfigurationsdatei (/etc/apt/apt.conf):

# // $Id: apt.conf,v 1.43 1999/12/06 02:19:38 jgg Exp $
/* This file is a sample configuration file with a few harmless sample
   options.
*/
APT
{
  // Options for apt-get
  Get
  {
     Download-Only "false";
  };
};
// Options for the downloading routines
Acquire
{
  Retries "0";
};
// Things that effect the APT dselect method
DSelect
{
  Clean "auto";   // always|auto|prompt|never
};
DPkg
{
  // Probably don't want to use force-downgrade..
  Options {"--force-overwrite";}
}

Innerhalb der Konfigurationsdatei sind zwei spezielle Einträge erlaubt, #include und #clear. #include liest die angegebene Datei an der entsprechenden Stelle ein, solange der Dateiname nicht mit einem Slash (/) endet. #clear löscht eine Liste von Namen.

Allen APT-Programmen kann die Option -o übergeben werden, um eine Konfigurationsoption auf der Kommandozeile zu übergeben.

  • Die Syntax hierfür ist der volle Name der Option, beispielsweise APT::Get::Assume-Yes, gefolgt von einem Gleichheitszeichen und dem gewünschten Wert für diese Option.
  • Listen können Werte hinzugefügt werden, indem abschließend zwei Doppelpunkte (::) angegeben werden.

Im Folgenden werden die verschiedenen Gruppen in der Konfigurationsdatei beschrieben.

APT

Diese Gruppe enthält generelle Parameter zu allen APT-Programmen.

Architecture Die System Architektur. Über diesen Wert wird ermittelt, welche Paketlisten und Debian Pakete passend zur Hardware-Architektur geholt werden.
  • Voreingestellt ist immer die Architektur für die APT auf dem System übersetzt wurden.
Ignore-Hold Setzt den „Hold“-Status global für alle Pakete außer Kraft.
Clean-Installed Voreingestellt ist hier der Wert „on“.
Immediate-Configure Mit dieser Option lässt sich das unmittelbare Konfigurieren von Paketen abschalten.
  • APT ruft nach einer Anzahl von Paketen, die zur Installation vorgemerkt sind, die Konfiguration dieser Pakete auf.
  • Dies ist sinnvoll, da Pakete aufeinander basieren und es erforderlich ist, dass ein bestimmtes Paket vor einem anderen bereits installiert und konfiguriert ist.
  • Das Abschalten dieser Option kann die Installation von vielen Paketen auf einem langsamen System beschleunigen, führt aber unter Umständen zu Problemen bei der Installation.
Force-LoopBreak Diese Option erlaubt APT, ein essenzielles Paket kurzfristig zu entfernen, um eine Endlosschleife in einem Konflikt oder einer Abhängigkeit (Pre-Depend) auflösen zu können.
  • Solch eine Endlosschleife darf eigentlich nicht existieren und ist ein schwerwiegender Fehler.
  • Diese Option wirkt nicht bei den essenziellen Paketen tar, gzip, libc, dpkg, bash oder allen anderen Paketen, von denen diese Pakete abhängen.
  • Diese Option darf nur eingesetzt werden, wenn Sie genau verstanden haben, was dies für Konsequenzen haben kann.
Cache-Limit APT nutzt einen festgelegten Speicherbereich, um Informationen über die verfügbaren Pakete zu speichern.
  • Mit dieser Option kann der Wert verändert werden.
Get Dieser Abschnitt kontrolliert das Verhalten von apt-get.
Cache Dieser Abschnitt kontrolliert das Verhalten von apt-cache.
CDROM Dieser Abschnitt kontrolliert das Verhalten von apt-cdrom.

Acquire

In dieser Gruppe sind Optionen für das Herunterladen von Paketen und die Behandlung von URIs enthalten.

Queue-Mode Dieser Eintrag betrifft die Behandlung von ausgehenden Verbindungen bei der Übertragung von Paketen.
  • Der Wert „host“ bedeutet, dass zu jedem System, von dem Pakete geholt werden, eine Verbindung aufgebaut wird.
  • Der Wert „access“ bewirkt, dass je URI-Typ eine Verbindung aufgebaut wird.
Retries Anzahl der Versuche bei einem fehlgeschlagenen Download.
Source-Symlinks Nutzt symbolische Links für Quellcode-Archive, anstatt eine Kopie der Datei anzulegen.
  • Voreinstellung ist „True“.
Http HTTP-Adressen können mit diesem Eintrag über einen Proxy-Server erreicht werden.
  • Die Angabe http::Proxy stellt der Standard-Proxy für alle Anfragen dar.
  • Die Adresse des Proxy-Servers ist wie üblich als http://[[user][:pass]@]host[:port]/ anzugeben.
  • Alternativ kann für einzelne Server ein gesonderter Proxy in der Form http::Proxy::<host> gesetzt werden.
  • Soll für einen einzelnen Server kein Proxy verwendet werden, so ist das Schlüsselwort DIRECT zu benutzen.
  • Die Umgebungsvariable http_proxy überschreibt alle diese Angaben.
  • Es sind drei Werte im Zusammenhang mit diesem Eintrag erlaubt. No-Cache teilt dem Proxy mit, dass in keinem Fall Daten aus dem Cache benutzt werden sollen. Max-Age wird für Index-Dateien verwendet und gibt die Zeit in Sekunden an, die das maximale Alter der Index-Dateien bezeichnet.
  • Die Index-Dateien auf Debian Servern werden täglich aktualisiert, der vorgegebene Wert entspricht ebenso einem Tag. No-Store führt dazu, dass die Anfrage niemals im Cache gespeichert wird.
  • Mit der Option timeout lässt sich die Zeit für Verbindungs- und Daten-Timeouts einstellen.
Ftp FTP-Adressen können mit diesem Eintrag über einen Proxy-Server erreicht werden.
  • Die Angabe ftp::Proxy stellt der Standard-Proxy für alle Anfragen dar.
  • Die Adresse des Proxy-Servers ist wie üblich als ftp://[[user][:pass]@]host[:port]/ anzugeben.
  • Um einen FTP-Proxy zu nutzen, muss in der Konfigurationsdatei der Wert ftp::ProxyLogin mit einem Skript belegt sein.
  • Dieser Eintrag beschreibt die Kommandos, die an den FTP-Server beim Login-Vorgang gesendet werden.
ProxyLogin
 {
     "USER $(PROXY_USER)";
     "PASS $(PROXY_PASS)";
     "USER $(SITE_USER)@$(SITE):$(SITE_PORT)";
     "PASS $(SITE_PASS)";
 };

Die Umgebungsvariable ftp_proxy überschreibt alle diese Angaben.

Mit der Option timeout lässt sich die Zeit für Verbindungs- und Daten-Timeouts einstellen.

cdrom Der Wert für einen Eintrag, der eine CD (ein CD-ROM- oder DVD-Laufwerk) betrifft, bezieht sich auf das Verzeichnis im Dateisystem, an dem der Inhalt eingebunden wird.
  • Die Syntax für solch einen Eintrag lautet:

"/cdrom/"::Mount "foo";

Wichtig ist bei einem solchen Eintrag der vorangestellte Slash (/).

  • Das Kommando umount kann ebenso durch den Eintrag UMount mit einer solchen Syntax genutzt werden.

Verzeichnisse

Dir::State Dieser Abschnitt betrifft Verzeichnisse mit lokalen Status-Informationen. lists bezeichnet das Verzeichnis, in dem die heruntergeladenen Paketlisten abgelegt werden. status ist der Dateiname der dpkg-Status-Datei. preferences ist der Name der APT-Konfigurationsdatei. Dir::State bezeichnet das Verzeichnis, welches allen anderen Objekten in diesem Abschnitt vorangestellt wird, wenn diese nicht mit / oder ./ beginnen.
Dir::Cache In diesem Abschnitt werden Verzeichisse festgelegt, die mit heruntergeladenen Dateien zu tun haben.
  • Die Angaben pkgcache und srcpkgcache enthalten das Verzeichnis für Binär- und Quellcode-Pakete.
  • Die Verwendung des Cache kann deaktiviert werden, in dem die Verzeichnisnamen nicht angegeben werden.
  • Das voreingestellte Verzeichnis für alle Caches wird in Dir::Cache festgelegt.
Dir::Etc Enthält den Pfad zu den Konfigurationsdateien, sourcelist bezeichnet dabei die Datei sources.list, main ist die voreingestellte Konfigurationsdatei.
Dir::Parts Dieser Abschnitt liest alle Konfigurationsteile in alphabetischer Reihenfolge aus dem angegebenen Verzeichnis.
  • Danach wird die zentrale Konfigurationsdatei eingelesen.
Dir::Bin In diesem Verzeichnis werden binäre Programme gesucht. Dir::Bin::Methods enthält den Pfad zu den zusätzlichen Methoden.
  • Die Angaben zu gzip, dpkg, apt-get, dpkg-source, dpkg-buildpackage und apt-cache zeigen auf die jeweiligen Programme im Verzeichnisbaum.