Apt ist eine Sammlung von Programmen, die Debian-Pakete aus verschiedenen Quellen installiert und verwaltet. Ihr ist auch die Möglichkeit zu verdanken, die Distribution großteils übers Netz zu ziehen. Zum einen haben Debian-Besitzer so stets die aktuellen Pakete auf dem Rechner. Anders als beim heruntergeladenen ISO-Image laufen zum anderen nur die wirklich zu installierenden Pakete übers Netz. Dieser positive Effekt verwischt sich leider, sobald mehrere Debian-Rechner im lokalen Netz zu installieren und pflegen sind. Jeder PC holen dann die gleichen Pakete wie der Nachbar von Extern – eine Verschwendung kostbarer Ressourcen.
Abhilfe schafft ein Proxy-Server, der zwischen die Debian-Paketeserver im Internet und den lokalen Debian-Rechnern geschaltet ist. Linux hält mehrere Programme bereit, die diese Aufgabe erfüllen können. Sehr leistungsfähig ist Apt-Proxy. Er speichert einmal übertragene Pakete auf der Festplatte zwischen und liefert sie auf Client-Anfrage (nochmal) aus. Natürlich kontrolliert er beim großen Server zuvor, ob der nicht inzwischen eine neuere Version vorliegen hat.
Debian-typisch flotte Installation
Das hier beschriebenen Shell-Skript apt-proxy ist aktuell in der stabilen Version 1.3 Teil der Debian-Distribution. Wer mag kann das Programm auch von der Apt-Proxy-Homepage [1] holen und installieren. Zwei Programmierer arbeiten an einer Neuentwicklung, die von der Produktionsreife aber noch weit entfernt ist. Nur wer diese Herausforderung liebt, installiert Apt-Proxy 2 aus Debians experimental-Zweig.
Die Installation des Programmes geht Debian-typisch einfach:
cassiopeia:~# apt-get install apt-proxy
Die Installationsprozess nimmt selbstständig einige Konfigurationen vor: So legt er den Systemaccount aptproxy an damit der Prozess nicht mit Rootrechten läuft. Außerdem macht er in der Datei /etc/inetd.conf dem System den Port 9999 bekannt. Greift nun ein Client auf Port 9999 zu, registriert das der inetd-Prozess und startet das apt-proxy-Skript, das die Verbindung übernimmt.
Der Proxy ist jetzt schon nutzbar. Trotzdem ist noch ein Blick in seine Konfigurationsdatei /etc/apt-proxy/apt-proxy.conf sehr sinnvoll, denn einige Angaben in ihr sind auskommentiert. Deren Aktivierung bieten, je nach Einsatzfall, neue oder abgewandelte Funktionen. Tabelle 1 gibt Auskunft über die einzelnen Optionen und deren Nutzen.
Tabelle 1: Variablen der apt-proxy.conf
| Variable | Möglicher Wert | Bedeutung |
|---|---|---|
| APT_PROXY_CACHE | Verzeichnis | Toplevel-Verzeichnis der zwischengespeicherten Binärpakete. |
| add_backend | Debian-Distribution und Quelle | Debian-Zweig und die passende URL, von der die Pakete stammen. |
| CLEANUP_DAYS | Tage | Anzahl der Tage, nach der Apt-Proxy veraltete Paketversionen löscht, auf die kein Client zwischenzeitlich zugegriffen hat. |
| CLEAN_SWEEP | Tage | Pakete, auf die Clients lange nicht angefordert haben, löscht Apt-Proxy nach dieser Zeit. |
| MAX_VERSIONS | Anzahl | Legt fest, wie viele Versionen eines Paketes gecacht bleiben. Die Option ist vor allem für die Zweige unstable und experimental interessant, die fehlerhafte Pakete enthalten könnten.
|
| BACKEND_FREQ | Minuten | Minimaler Zeitabstand, in dem Apt-Proxy Paketlisten aktualisiert. |
| RSYNC_TIMEOUT | Sekunden | Zeit, die rsync maximal bis zum Connect zum Upstreamserver wartet.
|
| WGET_TIMEOUT | Sekunden | Zeit, die wget maximal bis zum Connect zum Upstreamserver wartet.
|
| WGET | Dateiname inklusive Pfad und Optionen | Falls wget spezielle Optionen zu übergeben.
|
| RSYNC | Dateiname inklusive Pfad und Optionen | Falls rsync spezielle Optionen zu übergeben sind.
|
| KEEP_STATS | - | protokolliert Transferdaten, falls aktiviert. |
| DEBUG | - | Protokolliert Debugmeldungen, falls aktiviert. |
Die add_backend-Einträge bestimmen, welche Server Apt-Proxy für einen bestimmten Debian-Zweig – auch Distributionen genannt – kontaktiert. Die Syntax folgt dem Schema
add_backend Backend-Name Cache-Verzeichnis Server
Auf gleiche Weise lassen sich pro Zweig mehrere Server nacheinander eintragen. Wer weitere Quellen plant, kann aus Kasten 1 entnehmen, wie er einen bestehenden Eintrag der Datei sources.list umsetzt. Die abschließenden Slashes sind zwingend nötig, sonst würde der Eintrag falsch interpretiert.
Übertragungsprotokoll zum Server
Neben FTP und HTTP kann Apt-Proxy auch rsync verwenden, um Pakete zu holen. Die rsync-Variante ist hier jedoch ungünstig, da das Tool nur bei einzelner Dateien effektiv überträgt. Die beiden export-Zeilen am Ende der Konfigurationsdatei setzen korrepondierende Umgebungsvariablen für wget und rsync gesetzt. Sie beeinflussen nicht direkt das Verhalten von Apt-Proxy, sondern der beiden Übertragungstools.
Umsetzung einer
/etc/apt/sources.listAlte Einträge in <C>sources.list<C>:
deb http://download.kde.org/stable/3.2/Debian stable main deb http://www.backports.org/debian stable mozilla deb http://ftp.tiscali.be/debian-backports/debian stable package stable mozilla deb http://kambing.vlsm.org/DLL/debian-backports/debian stable mozilla
Neuer Einträge in sources.list:
deb http://Proxy-Server:9999/kde stable main deb http://Proxy-Server:9999/backports/ stable mozilla
Neue apt-proxy.conf-Datei auf dem Server
add_backend /kde/ $APT_PROXY_CACHE/kde/ http://download.kde.org/stable/3.2/Debian/
add_backend /backports/ $APT_PROXY_CACHE/backports/ http://www.backports.org/debian/ http://ftp.tiscali.be/debian-backports/debian/ http://kambing.vlsm.org/DLL/debian-backports/debian/



