[[Vorlage(getestet, maverick, lucid, karmic, jaunty, hardy)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Paketinstallation_DEB: Ein einzelnes Paket manuell installieren] [:Editor: Einen Editor öffnen] [:sudo:Root-Rechte] [:Paketverwaltung: Paketverwaltung nach Bedarf: KDE, GNOME, Konsole-APT] [:sources.list:] }}} [[Inhaltsverzeichnis(3)]] [http://www.unix-ag.uni-kl.de/~bloch/acng/ Apt-Cacher-ng] {en} 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 [:Lokale_Paketquellen/apt-cacher:apt-cacher] und [:Lokale_Paketquellen/apt-proxy: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 Versionen 0.1.9 (Hardy) bis 0.5.6 (Maverick) aus den Ubuntu-Quellen. Neuere Versionen sind z.B. über [http://packages.debian.org/de/lenny/apt-cacher-ng debian.org] {dl} verfügbar. = Installation von Apt-Cacher-ng auf dem Server = == Aus den Ubuntu-Quellen == Zu installierende Pakete [1]: {{{#!vorlage Paketinstallation 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 anderen 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, "Die Debian-Seite ist gleichzeitig der Downloadbereich des Projekts!")]] Z.B. auf [http://ftp.debian.org/debian/pool/main/a/apt-cacher-ng/ debian.org] {dl} Nach dem Download installiert man dieses Paket [2]. 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-Paketquellen) __funktioniert das Remapping nicht.__ }}} Hierbei handelt es sich um eine Datei des "Standard-Remappings". Alle 219 in dieser Datei aufgezählten Quellen werden im Unterordner '''uburep''' gesammelt (bei 0.5.6 unter Maverick sind in dieser Datei 570 Einträge). ==/etc/apt-cacher-ng/acng.conf== Dies ist die Haupt-Konfigurationsdatei. Sie kann mit einem beliebigen Editor[3] mit Root-Rechten [4] bearbeitet werden. {{{ 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`` , Standard:``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 Programms 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). {{{ Remap-debrep: file:deb_mirror*.gz /debian ; file:backends_debian Remap-uburep: file:ubuntu_mirrors /ubuntu ; file:backends_ubuntu }}} Standard-Remapping. Nähere Informationen im Abschnitt [#Remapping-Symbolische-Namen Remapping/Symbolische Namen] {{{#!vorlage Hinweis Es wird empfohlen, die Client-Konfiguration ebenfalls auf dem Rechner durchzuführen, auf dem Apt-Cacher-ng ausgeführt wird. }}} = Client-Konfiguration = Für die Konfiguration der Clients (zugreifende Rechner) sind vier Möglichkeiten bekannt. Es müssen jeweils __anschließend__ die Paketlisten erneuert werden (gilt nicht für die Einrichtung über Proxy) [5]. === sources.list bearbeiten === Man ändert die Einträge in der '''sources.list''' [6] 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 Rechner-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 Port der Anwendung auf dem Host ein (Standard: Apt-Cacher-ng ``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-Symbolische-Namen Remapping/Symbolische Namen]): {{{ 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 eines Caches/Proxies zu konfigurieren ist einen Proxy für '''apt''' festzulegen. Dazu muss in einer Datei in '''/etc/apt/apt.conf.d/''' (z.B. '''01proxy''', Datei muss ggf. angelegt werden) folgendes eingetragen werden: {{{ Acquire::http { Proxy "http://SERVER:PORT"; }; }}} `SERVER` kann die IP des Hosts von Apt-Cacher-ng sein, ein Rechner-Name (bei funktionierender Namensauflösung im LAN -> DNS), oder (wenn der Server auf dem selben Rechner läuft) localhost (bzw. 127.0.0.1). Für `PORT` trägt man den Port der Anwendung auf dem Host ein (Standard Apt-Cacher-ng ``3142``). Es können zusätzlich symbolische Namen in der '''sources.list''' [6] verwendet werden. Wenn der Proxy aus der '''apt'''-Konfiguration entfernt werden soll muss die Zeile auskommentiert ('''#''' voranstellen) oder gelöscht werden. Das Auskommentieren ist der bequemere Weg für z.B. Laptop-Benutzer die häufig in unterschiedlichen Netzwerken unterwegs sind. === Konfiguration über GUI === An dieser Stelle wird auf die Wikiseiten zu den verschiedenen Paketmanagern verwiesen ([:Synaptic:], [:Softwareverwaltung_KDE:],...). Grundsätzlich sind die selben Operationen wie beim manuellen Bearbeiten der '''sources.list''' [6] möglich. {{{#!vorlage Hinweis Verschiedene Nutzer haben berichtet eine Einrichtung über Synaptic würde nicht funktionieren. }}} === Einrichtung über Proxy === Wer in seinem Netzwerk einen Proxyserver (z.b. [:Squid:]) betreibt, kann die Einrichtung elegant über einen "Redirect" erledigen. Hierzu werden die entsprechenden URLs (z.B. `http://de.archive.ubuntu.com`) gefiltert und an den Server umgeleitet. Diese Art der Konfiguration ist vor allem für Laptops, die in verschiedenen (W-)LANs eingesetzt werden von Vorteil und erspart in großen Netzwerken ( > 20 Teilnehmer) Konfigurationsaufwand. Eine Konfiguration auf den einzelnen Clients ist __nicht__ erforderlich. Siehe hierzu: [http://www.squid-handbuch.de/hb/ Squid-Handbuch] {de} -> 6.2 Routing-Optionen zu anderen Proxys -> cache_peer_domain = 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. 1. Der Ordner und die Dateien werden dem Benutzer '''apt-cacher-ng''' zugeordnet (übertragen). 1. Über den Button ''"Import"'' auf dem Webinterface von Apt-Cacher-ng (Standard: `http://localhost:3142/acng-report.html`) kann der Importvorgang gestartet werden. Üblicherweise wird der Importvorgang so eingeleitet: (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. == Remapping/Symbolische Namen == {{{#!vorlage Warnung Laut [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'''. = Externe Links/Quellen = * [http://ubuntuforums.org/showthread.php?t=981085 Thread] {en} auf ubuntuforums.org * [http://www.unix-ag.uni-kl.de/~bloch/acng/ Vorschau] {en} auf das Webinterface, Link zur neuesten Version (Quelltext, sowie Debian-Pakete) * [http://packages.debian.org/de/lenny/apt-cacher-ng Pakete] {de} auf debian.org * Handbuch Apt-Cacher-ng {en} (nach der Installation lokal unter /usr/share/doc/apt-cacher-ng/html/index.html erreichbar) ---- #tag: Netzwerk, System, Paketverwaltung