[[Vorlage(getestet, hardy, intrepid)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Paketquellen freischalten: Bearbeiten von Paketquellen] [:Editor: Einen Editor öffnen] [:Paketverwaltung: Paketverwaltung nach Bedarf: KDE, GNOME, Konsole-APT] [:Paketinstallation_DEB: Ein einzelnes Paket manuell installieren] }}} [[Inhaltsverzeichnis(3)]] Apt-Cacher-ng ist ein Programm, welches die Belastung der Internetanbindung durch Updates verringert, sobald zwei oder mehr Debian-basierte (also auch Ubuntu und Derivate) Rechner über diesen Zwischenspeicher (Cache) auf die gleichen Paketquellen zugreifen. So werden Debian-Pakete die auf beiden (allen) Rechnern benötigt werden nur einmal aus dem Internet heruntergeladen. Apt-Cacher-ng ist in C++ implementiert und liefert auch auf schwachen Rechnern gute Performance. Ähnliche Programme / Unterschiede zu den Alternativen: Apt-Cacher-ng ist von der Funktionalität sehr nahe an [:Apt-Cacher:] und [:Apt-Proxy:]. Im Gegensatz zu Apt-Cacher ist Apt-Cacher-ng __nicht__ auf einen Webserver (z.B. Apache2) angewiesen. Jedoch wird kein Spiegelserver (wie bei [:apt-mirror:]) erzeugt, sondern nur die bereits durch andere Systeme angeforderten Pakete bereitgestellt. Dieser Artikel bezieht sich auf die Version 0.1.9 aus den Ubuntu-Quellen. Neuere Versionen sind z.B. über http://packages.debian.org/de/lenny/apt-cacher-ng {en} verfügbar. An gekennzeichneten Stellen wurde die Version 0.2.1-1 mit Ubuntu Intrepid Ibex verwendet. =Installation von Apt-Cacher-ng auf dem Server:= ==Aus den Ubuntu-Quellen:== Zu installierende Pakete [1]: * '''apt-cacher-ng''' [[Bild(acng_report.png, 200x200, align=right)]] Nach der Installation ist Apt-Cacher-ng über einen Browser erreichbar: http://localhost:3142/acng-report.html (bzw. von einem anderem Rechner über die IP des Hosts, auf dem Apt-Cacher-ng ausgeführt wird, oder bei funktionierendem DNS über dessen Namen). Beispiel siehe Abbildung rechts. ==Aus den Debian-Quellen:== [[Vorlage(Fremd, Paket)]] Z.B. [http://ftp.debian.org/debian/pool/main/a/apt-cacher-ng/] Nach dem Download installiert man dieses Paket [5]. Diese Variante ist interessant, für alle die eine veraltete Version aus den Ubuntu-Quellen angeboten bekommen. Hierdurch lässt sich ebenfalls der Bug in der Version 0.1.9 von Ubuntu 8.04 vermeiden. =Konfiguration von Apt-Cacher-ng auf dem Server= Nach jeder Änderung der Konfiguration ist Apt-Cacher-ng mit folgendem Befehl neu zu starten: {{{#!vorlage Befehl sudo /etc/init.d/apt-cacher-ng restart }}} ==/etc/apt-cacher-ng/ubuntu_mirrors== {{{#!vorlage Hinweis Für Benutzer von Ubuntu 8.04 Hardy Heron mit der Apt-Cacher-ng-Version 0.1.9 (aus den Ubuntu-Repositories) __funktioniert das Remapping nicht.__ }}} Hierbei handelt es sich um eine Datei des "Standart-Remappings". Alle 219 in dieser Datei aufgezählten Quellen werden im Unterordner '''uburep''' gesammelt. ==/etc/apt-cacher-ng/acng.conf== Dies ist die Haupt-Konfigurationsdatei. Sie kann mit einem beliebigen Editor (mit Root-Rechten) bearbeitet werden [3]. {{{ CacheDir: /var/cache/apt-cacher-ng }}} legt das Verzeichnis für den Cache fest. {{{ LogDir: /var/log/apt-cacher-ng }}} legt das Verzeichnis für Log-Dateien fest (Fehlerlog: apt-cacher.err, Zugriffslog: apt-cacher.log - mit IP des zugreifenden Rechners) {{{ Port:3142 }}} legt den Port der Anwendung fest (wichtig für Client-Konfiguration und Webinterface). {{{ VerboseLog: 1 }}} Umfang der Log-Dateien: 0 Typ, Zeit und Dateigröße werden erfasst, 1 zusätzlich Client-IP und relative lokale Pfade werden erfasst. {{{ ReportPage: acng-report.html }}} Seitenname der Statusseite (``http://SERVER:PORT/ReportPage`` , Standart:``http://SERVER:PORT/acng-report.html`` ) {{{ SocketPath:/var/run/apt-cacher-ng/socket }}} Socket Datei, um über einen lokalen UNIX Socket anstelle über TCP zuzugreifen. {{{ Verbose: 0 Debug:3 ForeGround: 0 }}} Für Fehlersuche/-Diagnose interessante Optionen. {{{ PidFile: /var/run/apt-cacher-ng/pid }}} Legt fest, in welcher Datei die Prozess-ID des hinterlegt wird (am besten nicht ändern). {{{ offlinemode:0 }}} Im Offline-Modus können nur bereits vorhandene Dateien verteilt werden. {{{ ForceManaged: 0 }}} Verbieten von Downloads von nicht konfigurierten Quellen. 0: Alle Quellen erlaubt, 1: Nur konfigurierte erlaubt {{{ Proxy: http://www-proxy.example.net:80 proxy: http://username:proxypassword@proxy.example.net:3128 }}} legt Proxy-Einstellungen fest (bei Bedarf, ungenutztes auskommentieren) {{{ ExTreshold: 10 }}} Tage bevor ein Paket, welches aus keiner Paketquelle verfügbar ist gelöscht wird. {{{ StupidFs: 0 }}} Falls Apt-Cacher-ng den Cache auf einer NTFS- oder FAT-Partition hat, können hiermit Fehler vermieden werden (in diesem Fall auf '''1''' setzen). {{{#!vorlage Warnung laut https://bugs.launchpad.net/ubuntu/+source/apt-cacher-ng/+bug/225485 {en} ist in dem Ubuntu-Paket ein Fehler, der die folgende Funktion beeinflusst! __Betroffen ist die Version 0.1.9 von Hardy!__ Es wurde die Version 0.2.1-1 unter Ubuntu 8.10 verwendet. }}} {{{ Remap-: /basepath/ ; backendhost/dir }}} Remapping (Symbolische Namen). Legt symbolische Namen für die Backends (Ubuntu- und Debian-Repositories) fest, bzw. in welchen Dateien diese gespeichert sind. __Achtung:__ Das Remapping funktioniert nur, wenn die '''sources.list''' angepasst wird! Für '''''' wird ein frei gewählter Name eingesetzt (einzelnes Wort, darf nicht mit einem Unterstrich '''"_"''' beginnen und nicht apt-cacher sein). Möglich sind z.B.: '''project_foo_mirrors''' oder '''ubuntu_stuff'''. Legt den Unterordner im Cache fest. '''/basepath/''' ist der Name, den ein Client für das Repository verwendet ('''sources.list'''[2] Z.B.: ``de.archive.ubuntu.com ``). Wenn hier ein Symbolischer Name steht, muss '''backendhost''' das gewünschte Repository angeben (kann ansonsten entfallen). Dies wäre bereits die einfachste Form des Remapping. Für umfangreiche Konfigurationen kann das Remapping in die angegebenen Dateien ausgelagert werden: {{{ Remap-: file:list.txt ; file:where.txt }}} ===Beispiel: (Remapping)=== {{{ Remap-ubuntu_ger: ubuntu_de ; http://de.archive.ubuntu.com/ubuntu/ Remap-fremdes_repo: kenne_ich_nicht ; http://packages.medibuntu.org/ }}} Nun könnte in der '''sources.list''' eines Clients stehen: {{{ deb http://ubuntu_de/ubuntu hardy-security restricted main multiverse universe deb http://kenne_ich_nicht hardy free non-free ... }}} Die Dateien aus '''de.archive.ubuntu.com''' würden in dem Unterordner '''ubuntu_ger''' gespeichert, die aus '''packages.medibuntu.org''' im Unterordner '''fremdes_repo'''. {{{#!vorlage Hinweis Es wird empfohlen, die Client-Kofiguration ebenfalls auf dem Rechner durchzuführen, auf dem Apt-Cacher-ng ausgeführt wird. }}} =Client-Konfiguration= Für die Konfiguration der Clients sind drei Möglichkeiten bekannt. Es müssen jeweils __anschließend__ die Paketlisten erneuert werden [4]. ==sources.list bearbeiten [2]== Man ändert die Einträge wie folgt ab: Man schreibt zwischen "http://" und der darauf folgenden Adresse `SERVER`:`PORT`. `SERVER` kann die IP des Hosts von Apt-Cacher-ng sein, ein symbolischer Name (bei funktionierender Namensauflösung im LAN -> DNS), oder (wenn der Server auf dem gleichem Rechner läuft) localhost (bzw. 127.0.0.1). Für `PORT` trägt man den in der '''/etc/apt-cacher-ng/acng.conf''' angegeben Port ein (Standart ``3142``). ===Beispiel:=== Aus: {{{deb http://de.archive.ubuntu.com/ubuntu/ hardy universe}}} wird (__Annahme:__ Apt-Cacher-ng läuft auf dem Rechner mit der IP: 192.168.0.4 mit dem Port:3142): {{{deb http://192.168.0.4:3142/de.archive.ubuntu.com/ubuntu/ hardy universe}}} bzw. wenn der symbolische Name (ubuntu_de de.archive.ubuntu.com/ubuntu/) verwendet wird (siehe Remapping im Abschnitt /etc/apt-cacher-ng/acng.conf): {{{#!vorlage Warnung Laut https://bugs.launchpad.net/ubuntu/+source/apt-cacher-ng/+bug/225485 {en} ist in dem Ubuntu-Paket ein Fehler, der die Arbeit mit symbolischen Namen verhindert! __Betroffen ist die Version 0.1.9 von Hardy__. }}} {{{deb http://192.168.0.4:3142/ubuntu_de/ubuntu hardy universe}}} ==Apt für Nutzung eines Proxys konfigurieren== Der schnellste Weg die Clients für die Nutzung des Caches zu konfigurieren ist einen Proxy für '''apt''' festzulegen. Dies erfolgt durch folgenden Befehl: {{{#!vorlage Befehl echo 'Acquire::http { Proxy "http://SERVER:PORT"; };' | sudo tee /etc/apt/apt.conf.d/01proxy }}} `SERVER` kann die IP des Hosts von Apt-Cacher-ng sein, ein symbolischer Name (bei funktionierender Namensauflösung im LAN -> DNS), oder (wenn der Server auf dem gleichem Rechner läuft) localhost (bzw. 127.0.0.1). Für `PORT` trägt man den in der '''/etc/apt-cacher-ng/acng.conf''' angegeben Port ein (Standart ``3142``). Es können zusätzlich Symbolische Namen in der '''sources.list''' [2] verwendet werden. ==Konfiguration über GUI [4]== An dieser Stelle wird auf die Wikiseiten zu den verschiedenen Paketmanagern verwiesen (Synaptic, Adept,...). Grundsätzlich sind die selben Operationen wie beim manuellem Bearbeiten der sources.list möglich. =Weitere Möglichkeiten mit Apt-Cacher-ng= ==Import der bereits heruntergeladenen Archive== [[Bild(acng_import.png, 200x200, align=right)]] 1. Hierzu muss im Cache-Verzeichnis ein Unterordner '''_import''' angelegt werden, in den die Archive kopiert werden. 2. Der Ordner und die Dateien werden dem Benutzer '''apt-cacher-ng''' zugeordnet (übertragen). 3. Über den Button ''"Import"'' auf dem Webinterface von Apt-Cacher-ng (Standart: http://localhost:3142/acng-report.html) kann der Importvorgang gestartet werden. Üblicherweise wird der Importvorgang so eingeleite: (Beispiel: Import des Caches, der von apt unter /var/cache/apt/archives/ angelegt wurde): {{{#!vorlage Befehl sudo mkdir -p /var/cache/apt-cacher-ng/_import sudo chown apt-cacher-ng /var/cache/apt-cacher-ng/_import sudo cp -al /var/cache/apt/archives/* /var/cache/apt-cacher-ng/_import/ }}} Nach dem Anklicken des ''"Import"''-Buttons auf dem Webinterface startet der Vorgang. ==Bereinigung des Caches== [[Bild(acng_expiration.png, 200x200, align=right)]] Über den Button ''"Start Expiration"'' auf dem Webinterface kann die Bereinigung manuell gestartet werden. Das Ergebnis sieht etwa wie nebenstehend aus. =Externe Links/Quellen= * [http://ubuntuforums.org/showthread.php?t=981085] {en} * [http://www.unix-ag.uni-kl.de/~bloch/acng/] {en} Vorschau auf das Webinterface, Link zur neuesten Version (Quelltext, sowie Debian-Pakete) * [http://packages.debian.org/de/lenny/apt-cacher-ng] {de} * Handbuch Apt-Cacher-ng {en} (nach der Installation lokal unter /usr/share/doc/apt-cacher-ng/html/index.html erreichbar) #tag: Netzwerk, System, Paketverwaltung