ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

Apt-Cacher-ng

Fehlende Vorlage

Das gewünschte Template „Wiki/Vorlagen/InArbeit“ existiert nicht.

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist mit keiner aktuell unterstützten Ubuntu-Version getestet! Bitte teste diesen Artikel für eine Ubuntu-Version, welche aktuell unterstützt wird. Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

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 verfügbar.

Hinweis!

Fremdpakete können das System gefährden.

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.

Installation von Apt-Cacher-ng auf dem Server:

Zu installierende Pakete [1]:

  • apt-cacher-ng

  • adduser

  • libbz2-1.0

  • libc6

  • libfuse2

  • libgcc1

  • libstdc++6

  • zlib1g

Die Abhängigkeiten werden automatisch erkannt, es braucht also nur das Paket apt-cacher-ng zur Installation angefordert zu werden. acng_report.png

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.

Konfiguration von Apt-Cacher-ng auf dem Server:

Die Standartkonfiguration von Apt-Cacher-ng beinhaltet bereits 219 Paketquellen (nur Ubuntu-Quellen, keine Debian-Quellen). Es wird empfohlen die Konfiguration nur zu ändern, wenn Probleme auftreten.

/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).

Achtung!

laut https://bugs.launchpad.net/ubuntu/+source/apt-cacher-ng/+bug/225485 ist in dem Ubuntu-Paket ein Fehler, der die folgende Funktion beeinflusst! Betroffen ist die Version 0.1.9 von Hardy

Remap-<repository_name>: /basepath/ file:list.txt ; backendhost/dir file:where.txt

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 <repository_name> 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

/basepath/ ist der Pfad, wie er in der sources.list[2] stehen würde. Z.B.: http://de.archive.ubuntu.com/ubuntu/

Dies wäre bereits die einfachste Form des Remapping. Für umfangreiche Konfigurationen kann das Remapping in die angegebenen Dateien ausgelagert werden. Weitere Details sind der Anleitung zu entnehmen.

Beispiel:

Remap-ubuntu_ger: http://de.archive.ubuntu.com/ubuntu/ ;
Remap-fremdes_repo: http://packages.medibuntu.org/ ;

Nun könnte in der sources.list eines Clients stehen:

deb ubuntu_ger hardy-security restricted main multiverse universe
deb fremdes_repo hardy free non-free
...

Ende des Beispiels.

Hinter dem Semikolon kann jetzt noch ein Downloadpfad folgen (falls im lokalem Netzwerk z.B. ein Mirror der Quelle ist). Im Hausgebrauch so gut wie ausgeschlossen.

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).

/etc/apt-cacher-ng/ubuntu_mirrors

Hierbei handelt es sich um eine Konfigurationsdatei in der die bekannten Ubuntu-Repositories gelistet sind (219 sind in der Datei gelistet, genug für den Hausgebrauch). Solange man den Zugriff nicht auf bestimmte Quellen beschränken möchte oder die Option ForceManaged: 0 gesetzt hat braucht man diese Datei nicht weiter bearbeiten.

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 3 Möglichkeiten bekannt. Es müssen jeweils anschließend die Paketlisten erneuert werden [4].

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:

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).

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-ger de.archive.ubuntu.com/ubuntu/) verwendet wird (siehe Remapping im Abschnitt /etc/apt-cacher-ng/acng.conf):

Achtung!

laut https://bugs.launchpad.net/ubuntu/+source/apt-cacher-ng/+bug/225485 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-ger/ hardy universe

Proxy über GUI festlegen [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

acng_import.png

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 eingeleitet (Beispiel: Import des Caches, der von apt unter /var/cache/apt/archives/ angelegt wurde):

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

acng_expiration.png

Über den Button Start Expiration auf dem Webinterface kann die Bereinigung manuell gestartet werden. Das Ergebnis sieht etwa wie nebenstehend aus.

http://ubuntuforums.org/showthread.php?t=981085 🇬🇧

http://www.unix-ag.uni-kl.de/~bloch/acng/ 🇬🇧 (Vorschau auf das Webinterface, Link zur neuesten Version)

http://packages.debian.org/de/lenny/apt-cacher-ng 🇩🇪

Handbuch Apt-Cacher-ng 🇬🇧 (nach der Installation lokal unter /usr/share/doc/apt-cacher-ng/html/index.html erreichbar)

Diese Revision wurde am 20. Februar 2009 15:09 von unbekannt1984 erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Paketverwaltung, Netzwerk, System, Server