[[Vorlage(getestet, precise, lucid, )]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Paketinstallation_DEB: Ein einzelnes Paket manuell installieren] [:Editor: Einen Editor öffnen] [:sudo:Root-Rechte] [:Paketverwaltung:] [: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. Apt-Cacher-ng ist von der Funktionalität sehr nahe an [:Lokale_Paketquellen/apt-cacher:apt-cacher]. Im Gegensatz zu apt-cacher ist Apt-Cacher-ng __nicht__ auf einen Webserver (z.B. Apache2) angewiesen. Dieser Artikel bezieht sich auf die Versionen aus den Ubuntu-Quellen. Neuere Versionen sind z.B. über [http://packages.debian.org/sid/apt-cacher-ng debian.org] {dl} verfügbar. Ähnliche Programme unter: [:Lokale_Paketquellen:] = 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 == 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.14 unter Maverick sind in dieser Datei 594 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/ precise 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/ precise 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 precise 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"; }; }}} Falls https Repositories benutzt werden, sollte folgendes in die Datei, da apt-get bei einem Proxy für https Fehler werfen wird: {{{ Acquire::http { Proxy "http://SERVER:PORT"; }; Acquire::https { Proxy "https://"; }; }}} `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)]] Man kann bereits heruntergeladene Archive auf dem Rechner, der als Server dient, importieren. Hierzu führt man folgende Schritte aus: 1. Zuerst auf dem lokalen Rechner (Server) den Proxy eintragen (siehe oben) und einmal `sudo apt-get update` ausführen, damit der Paketindex der lokalen Pakete von apt-cacher-ng bekannt ist 1. Dann den apt Zwischenspeicher um veraltete Pakete erleichtern 1. Dann im Cache-Verzeichnis den Unterordner '''_import''' anlegen, 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 1. Nachdem der Import abgeschlossen ist, kann der Unterordner '''_import''' wieder gelöscht werden Üblicherweise wird der Importvorgang so eingeleitet: Als Beispiel der Import des Caches, der von apt unter '''/var/cache/apt/archives/''' angelegt wurde (ohne `sudo -s` wird die Befehlszeile des cp-Befehls bei vielen Dateien zu lang und `sudo` fuehrt das Kommando nicht aus): {{{#!vorlage Befehl sudo -s apt-get update apt-get autoclean mkdir -p /var/cache/apt-cacher-ng/_import chown apt-cacher-ng /var/cache/apt-cacher-ng/_import cp -al /var/cache/apt/archives/* /var/cache/apt-cacher-ng/_import/ exit }}} Nach dem Anklicken des ''"Start Import"''-Buttons auf dem Webinterface startet der Vorgang. Nachdem dieser im Web-Interface abgeschlossen wurde, entfernt man den Ordner wieder: {{{#!vorlage Befehl sudo rm -rf /var/cache/apt-cacher-ng/_import }}} == 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. == Distkill == Wenn der Cache von Apt-Cacher-ng durch lange Benutzung (oder viele Distributionen) zu groß wird, gibt es mit Distkill einen Weg ganze Releases (bzw. deren Komponenten zu löschen). Ein Aufruf von: {{{#!vorlage Befehl sudo /usr/lib/apt-cacher-ng/distkill.pl }}} Gibt eine Liste der zwischengespeicherten Distributionen/Komponenten aus: {{{Scanning /var/cache/apt-cacher-ng, please wait... Found distributions: 1. karmic (102 index files) 2. maverick-backports (32 index files) 3. karmic-security (35 index files) 4. karmic-backports (64 index files) 5. maverick-security (32 index files) 6. maverick-updates (34 index files) 7. maverick (54 index files) 8. lucid-proposed (3 index files) 9. lucid-updates (42 index files) 10. karmic-proposed (3 index files) 11. jaunty-updates (32 index files) 12. lucid (71 index files) 13. jaunty-security (64 index files) 14. lucid-backports (43 index files) 15. jaunty (88 index files) 16. lucid-security (46 index files) 17. jaunty-backports (32 index files) 18. karmic-updates (60 index files) WARNING: The removal action would wipe out whole directories containing index files. Select d to see detailed list. Which distribution to remove? (Number, 0 to exit, d for details): }}} Durch Eingabe einer Nummer werden die Index-Dateien der gewählten Komponente gelöscht. Führt man nun eine [:Lokale_Paketquellen/Apt-Cacher-ng#Bereinigung-des-Caches: Bereinigung des Caches], ohne erneutes herunterladen der Indexdateien, aus, so werden die entsprechenden Pakete (je nach Einstellung - ExTreshold) bald vom System entfernt. Nähere Informationen hierzu findet man unter: [http://www.unix-ag.uni-kl.de/~bloch/acng/html/howtos.html#cache-overview] {en} ##{{{#!vorlage Hinweis ##Die Version 0.6.5, welche in Oneiric verfügbar ist, arbeitet hier geringfügig anders. Durch Eingabe einer Nummer wird eine Komponente ##markiert, anschließend können entweder mit ''d'' Details über die ausgewählten Komponenten angezeigt werden, oder mit ''r'' das Entfernen ##gestartet werden. ##}}} == 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 precise-security restricted main multiverse universe deb http://kenne_ich_nicht precise 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://alioth.debian.org/projects/apt-cacher-ng/ Projektseite] {en} * Handbuch Apt-Cacher-ng {en} (nach der Installation lokal unter /usr/share/doc/apt-cacher-ng/html/index.html erreichbar) #tag: Netzwerk, System, Paketverwaltung, Server