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, aber 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 wie folgt 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 Zeile entsprechen dem Aufbau von APT::Get::Assume-Yes "true";. Wichtig ist hierbei das
abschliessende 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. Hier ein 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 abschliessend zwei Doppelpunkte (::) angegeben werden.
Im folgenden werden die verschiedenen Gruppen in der Konfigurationsdatei beschrieben.
Diese Gruppe enthält generelle Parameter zu allen APT-Programmmen.
Die System Architektur. Über diesen Wert wird ermittelt, welche Paketlisten und Debianpakete passend zur Hardware-Architektur geholt werden. Voreingestellt ist immer die Architektur für die APT auf dem System übersetzt wurden.
Setzt den „Hold“-Status global für alle Pakete ausser Kraft.
Voreingestellt ist hier der Wert „on“.
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 das 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.
Diese Option erlaubt APT ein essentielles 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 essentiellen 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.
APT nutzt einen festgelegten Speicherbereich um Informationen über die verfügbaren Pakete zu speichern. Mit dieser Option kann der Wert verändert werden.
In dieser Gruppe sind Optionen für das herrunterladen von Paketen und die Behandlung von URIs enthalten.
Dieser Eintrag betrifft die Behandlung von ausgehenden Verbindungen bei der Übertragung von Paketen. Der Wert „host“ bedeutet das zu jedem System von dem Pakete geholt werden eine Verbindung aufgebaut wird. Der Wert „access“ bewirkt das je URI-Typ eine Verbindung aufgebaut wird.
Anzahl der Versuche bei einem fehlgeschlagenen Download.
Nutzt symbolische Links für Quellcode-Archive anstatt eine Kopie der Datei anzulegen. Voreinstellung ist „True“.
HTTP Adressen können mit diesem Eintrag über einen
Proxy-Server erreicht werde. 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 das die
Anfrage niemals im Cache gespeichert wird.
Mit der Option timeout lässt sich die Zeit für
Verbindungs- und Daten-Timeouts einstellen.
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 Loginvorgang 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.
Der einzig mögliche 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.
Dir::State
Dieser Abschnitt betrifft Verzeichnisse mit lokalen
Status Informationen. lists bezeichnet das
Verzeichnis in dem die herruntergeladenen 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 herruntergeladenen Dateien zu tun haben. Die Angaben pkgcache und srcpkgcache enthalten das
Verzeichnis für Binär- und Quellcodepakete. 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 Reiehenfolge, 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.
Wird APT als Zugroffsmethode von dselect verwendet, so können die folgenden
Parameter zur Konfiguration verwendet werden.
Clean
Modus um den Paketcache zu verwalten.
options
Der Inhalt dieser Variablen wird an apt-get als Kommandozeilenoption
durchgereicht, wenn eine Installation durchgeführt wird.
Updateoptions
Der Inhalt dieser Variablen wird an apt-get als Kommandozeilenoption
durchgereicht, wenn ein Update durchgeführt wird.
PromptAfterUpdate
Wird die Funktion Update im Programm dselect verwendet, so wird immer
nachgefragt um eine Aktion fortzusetzen, wenn diese Variable auf
True gesetzt ist.
Im Abschnitt DPkg der Konfigurationsdatei können
verschiedene Parameter eingestellt werden, die sich mit dem Aufruf von dpkg aus APT-basierenden Programmen
beschäftigen.
options
Eine Liste von Optionen die dem Aufruf von dpkg übergeben werden.
Pre-Invoke, Post-Invoke Eine Liste von Shell-Kommandos die vor bzw. nach dem Aufruf
von dpkg ausgeführt werden. Die Kommandos werden mittels /bin/sh ausgeführt, sollte eines
der Kommandos mit einem Fehler beendet werden, so bricht auf APT
an dieser Stelle die weitere Ausführung ab.
Pre-Install-Pkgs
Dies ist eine Liste von Kommandos, welche vor dem Aufruf von dpkg ausgeführt werden. Die
Kommandos werden mittels /bin/sh ausgeführt, sollte eines
der Kommandos mit einem Fehler beendet werden, so bricht auf APT
an dieser Stelle die weitere Ausführung ab. APT übergibt die
Namen aller zu installierenden Debian-Paketdateien (.deb) an die Kommandos.
Run-Directory
APT wechselt in das hier angegebene Verzeichnis vor dem Aufruf
von dpkg. Voreingestellt ist hier das
Verzeichnis /.
Build-options
Diese Optionen werden dem Programm dpkg-buildpackage übergeben.
Voreingestellt ist das Pakete nicht digital signiert werden und
das alle Binär-Pakete erzeugt werden.
Abschliessend ein Beispiel für die APT-Konfigurationsdatei mit allen Optionen. Dieses Beispiel ist so in dieser Form nicht sinnvoll einzusetzen, zeigt aber sehr gut auf wie verschiedene Optionen mit Werten belegt werden.
// $Id: configure-index,v 1.10 2004/07/17 19:37:16 mdz Exp $
/* This file is an index of all APT configuration directives. It should
NOT actually be used as a real config file, though it is (except for the
last line) a completely valid file. Most of the options have sane default
values, unless you have specific needs you should NOT include arbitary
items in a custom configuration.
In some instances involving filenames it is possible to set the default
directory when the path is evaluated. This means you can use relative
paths within the sub scope.
The configuration directives are specified in a tree with {} designating
a subscope relative to the tag before the {}. You can further specify
a subscope using scope notation eg,
APT::Architecture "i386";
This is prefixed with the current scope. Scope notation must be used
if an option is specified on the command line with -o.
*/
quiet "0";
// Options for APT in general
APT
{
Architecture "i386";
Build-Essential "build-essential";
// Options for apt-get
Get
{
Arch-Only "false";
Download-Only "false";
Simulate "false";
Assume-Yes "false";
Force-Yes "false"; // I would never set this.
Fix-Broken "false";
Fix-Missing "false";
Show-Upgraded "false";
Show-Versions "false";
Upgrade "true";
Print-URIs "false";
Compile "false";
Download "true";
Purge "false";
List-Cleanup "true";
ReInstall "false";
Trivial-Only "false";
Remove "true";
Only-Source "";
Diff-Only "false";
Tar-Only "false";
};
Cache
{
Important "false";
AllVersions "false";
GivenOnly "false";
RecurseDepends "false";
ShowFull "false";
Generate "true";
NamesOnly "false";
AllNames "false";
Installed "false";
};
CDROM
{
Rename "false";
NoMount "false";
Fast "false";
NoAct "false";
};
// Some general options
Ignore-Hold "false";
Clean-Installed "true";
Immediate-Configure "true"; // DO NOT turn this off, see the man page
Force-LoopBreak "false"; // DO NOT turn this on, see the man page
Cache-Limit "4194304";
Default-Release "";
};
// Options for the downloading routines
Acquire
{
Queue-Mode "host"; // host|access
Retries "0";
Source-Symlinks "true";
// HTTP method configuration
http
{
Proxy "http://127.0.0.1:3128";
Proxy::http.us.debian.org "DIRECT"; // Specific per-host setting
Timeout "120";
Pipeline-Depth "5";
// Cache Control. Note these do not work with Squid 2.0.2
No-Cache "false";
Max-Age "86400"; // 1 Day age on index files
No-Store "false"; // Prevent the cache from storing archives
};
ftp
{
Proxy "ftp://127.0.0.1/";
Proxy::http.us.debian.org "DIRECT"; // Specific per-host setting
/* Required script to perform proxy login. This example should work
for tisfwtk */
ProxyLogin
{
"USER $(PROXY_USER)";
"PASS $(PROXY_PASS)";
"USER $(SITE_USER)@$(SITE):$(SITE_PORT)";
"PASS $(SITE_PASS)";
};
Timeout "120";
/* Passive mode control, proxy, non-proxy and per-host. Pasv mode
is prefered if possible */
Passive "true";
Proxy::Passive "true";
Passive::http.us.debian.org "true"; // Specific per-host setting
};
cdrom
{
mount "/cdrom";
// You need the trailing slash!
"/cdrom/"
{
Mount "sleep 1000";
UMount "sleep 500";
}
};
};
// Directory layout
Dir "/"
{
// Location of the state dir
State "var/lib/apt/"
{
Lists "lists/";
xstatus "xstatus";
userstatus "status.user";
status "/var/lib/dpkg/status";
cdroms "cdroms.list";
};
// Location of the cache dir
Cache "var/cache/apt/" {
Archives "archives/";
srcpkgcache "srcpkgcache.bin";
pkgcache "pkgcache.bin";
};
// Config files
Etc "etc/apt/" {
SourceList "sources.list";
Main "apt.conf";
Preferences "preferences";
Parts "apt.conf.d/";
};
// Locations of binaries
Bin {
methods "/usr/lib/apt/methods/";
gzip "/bin/gzip";
dpkg "/usr/bin/dpkg";
dpkg-source "/usr/bin/dpkg-source";
dpkg-buildpackage "/usr/bin/dpkg-buildpackage"
apt-get "/usr/bin/apt-get";
apt-cache "/usr/bin/apt-cache";
};
};
// Things that effect the APT dselect method
DSelect
{
Clean "auto"; // always|auto|prompt|never
Options "-f";
UpdateOptions "";
PromptAfterUpdate "no";
CheckDir "no";
}
DPkg
{
// Probably don't want to use force-downgrade..
Options {"--force-overwrite";"--force-downgrade";}
// Auto re-mounting of a readonly /usr
Pre-Invoke {"mount -o remount,rw /usr";};
Post-Invoke {"mount -o remount,ro /usr";};
// Prevents daemons from getting cwd as something mountable (default)
Run-Directory "/";
// Build options for apt-get source --compile
Build-Options "-b -uc";
// Pre-configure all packages before they are installed using debconf.
Pre-Install-Pkgs {"dpkg-preconfigure --apt --priority=low --frontend=dialog";};
// Flush the contents of stdin before forking dpkg.
FlushSTDIN "true";
// Control the size of the command line passed to dpkg.
MaxBytes 1024;
MaxArgs 350;
}
/* Options you can set to see some debugging text They correspond to names
of classes in the source code */
Debug
{
pkgProblemResolver "false";
pkgAcquire "false";
pkgAcquire::Worker "false";
pkgDPkgPM "false";
pkgOrderList "false";
pkgInitialize "false"; // This one will dump the configuration space
NoLocking "false";
Acquire::Ftp "false"; // Show ftp command traffic
Acquire::Http "false"; // Show http command traffic
aptcdrom "false"; // Show found package files
IdentCdrom "false";
}
/* Whatever you do, do not use this configuration file!! Take out ONLY
the portions you need! */
This Is Not A Valid Config File
© 1999-2006 Frank Ronneburg - Dieser Inhalt ist unter einem Creative Commons Namensnennung - Nicht-kommerziell - Keine Bearbeitung Lizenzvertrag lizenziert (creativecommons.org/licenses/by-nc-nd/2.0/de/legalcode).