[[Vorlage(Archiviert, "Programm nicht mehr in den Paketquellen enthalten")]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Editor: Einen Editor öffnen] [:Paketverwaltung:] }}} [[Inhaltsverzeichnis(1)]] [http://apt-proxy.sourceforge.net/ apt-proxy] {en} ist ein Programm, welches alle Pakete, die aus dem Internet heruntergeladen wurden, zwischenspeichert und da es sich wie ein HTTP-Server verhält, diese Pakete auch anderen Rechnern im Netzwerk verfügbar macht. Falls ein Paket nicht im Cache sein sollte, lädt apt-proxy dieses automatisch herunter und nimmt es im Cache auf. Dies kann die Anzahl der Downloads beträchtlich senken, gerade wenn mehrere Ubuntu-Rechner im Netzwerk mit Updates und Paketen versorgt werden müssen. Weitere Programme mit ähnlichen Funktionen finden sich unter [:Lokale_Paketquellen:]. = Installation = Das Programm ist bis einschließlich [:Lucid:Ubuntu 10.04] in den offiziellen Paketquellen enthalten. Das zu installierende Paket [1] heißt: {{{#!vorlage Paketinstallation apt-proxy, universe }}} = Konfiguration = Nach der Installation muss die Datei '''/etc/apt-proxy/apt-proxy.conf''' ('''/etc/apt-proxy/apt-proxy-v2.conf''' vor Ubuntu 10.04), die gut kommentiert ist, bearbeitet [2] werden. == Allgemeine Konfiguration == Im ersten Abschnitt der '''apt-proxy.conf''' werden die allgemeinen Einstellungen vorgenommen. Zuerst sollte man den Netzwerk-Bereich festlegen, den apt-proxy ansprechen darf. In der Basiseinstellung darf das gesamte Netzwerk den Proxy ansprechen, theoretisch auch Rechner aus dem Internet. Möchte man dies vermeiden, so sollte man apt-proxy so konfigurieren, dass er nur auf die eigene interne IP hört, also z.B. {{{;; Server IP to listen on address = 192.168.0.10 ;; Server port to listen on port = 9999 }}} Dabei kann man auch gleich den Port einrichten, unter dem der Proxy erreicht werden soll. Die Voreinstellung 9999 ist jedoch eine gute Wahl. Anschließend sollte man das Verzeichnis festlegen, wo apt-proxy seine Daten ablegen soll. Auf der Partition muss genügend Platz sein, daher hier bitte das Verzeichnis entsprechend auswählen. {{{ ;; Cache directory for apt-proxy cache_dir = /var/cache/apt-proxy }}} Wenn man eine Firewall benutzt, kann es Probleme mit aktiven FTP-Verbindungen geben. Die Option {{{ ;; Use passive FTP? (default=on) passive_ftp = on }}} sollte dies beheben. Es ist auch möglich, apt-proxy selber einen http-Proxy nutzen zu lassen. Server und Port sind hier anzugeben: {{{ ;; Use HTTP proxy? http_proxy = host:port }}} Die anderen Abgaben legen fest, wie lange ein Paket im Cache gehalten wird, wie alt ein Paket sein muss, ehe apt-proxy nach einer neueren Version sucht und wie oft der Cache nach alten Paketen durchsucht wird. Normalerweise kann man hier die Standardwerte verwenden. == Konfiguration der Backends == Nun folgt die Konfiguration der sog. Backends, welche festlegt, von welchen Servern die von den Clients angeforderten Pakete bezogen werden können bzw. unter welchem Namen diese anzufordern sind. Grundsätzlich unterscheidet man zwischen dynamischer Konfiguration der Backends, welche keine weiteren Einstellungen mehr in dieser Datei erforderlich macht, sowie einer statischen, die die zu verwendenden Backends fix festlegt. === Dynamische Backend-Konfiguration === Um diese Art der Backend-Konfiguration zu nutzen, muss lediglich die Zeile {{{ ;; Add HTTP backends dynamicaly if not already defined? (default=on) dynamic_backends = on }}} hinzugefügt werden. === Statische Backend-Konfiguration === Bei einer statischen Konfiguration sind Backends mit jeweils zugehörigen Servern zu definieren, welche im Falle einer Abfrage dieses Backends als Datenquelle verwendet werden. Standardmäßig sind schon einige Debian- und Ubuntu-Quellen eingetragen. Zur Verwendung sollte man die Konfiguration noch so umstellen, dass ein deutscher Mirror-Server abgefragt wird. Also z.B. {{{ ;; Backend servers, in order of preference backends = http://ftp.us.debian.org/debian http://ftp.de.debian.org/debian http://ftp2.de.debian.org/debian ftp://ftp.uk.debian.org/debian [debian-non-US] ;; Debian debian-non-US archive ;timeout will be the global value backends = http://ftp.uk.debian.org/debian-non-US http://ftp.de.debian.org/debian-non-US ftp://ftp.uk.debian.org/debian [security] ;; Debian security archive backends = http://security.debian.org/debian-security http://ftp2.de.debian.org/debian-security [ubuntu] ;; Ubuntu archive backends = http://de.archive.ubuntu.com/ubuntu [ubuntu-security] ;; Ubuntu security updates backends = http://security.ubuntu.com/ubuntu }}} = Konfiguration der Clients = 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) [3]. === sources.list bearbeiten === Man ändert die Einträge in der '''sources.list''' [4] wie folgt ab: Man schreibt zwischen "http://" und der darauf folgenden Adresse `SERVER`:`PORT`. `SERVER` kann die IP des Hosts von apt-proxy 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-proxy `9999`). ==== Beispiel ==== Aus: {{{ deb http://de.archive.ubuntu.com/ubuntu/ hardy universe }}} wird (Beispiel: apt-proxy läuft auf dem Rechner mit der IP `192.168.0.4` auf dem Port`9999`): {{{ deb http://192.168.0.4:9999/de.archive.ubuntu.com/ubuntu/ hardy universe }}} bzw. wenn der symbolische Name (`ubuntu_de de.archive.ubuntu.com/ubuntu/`) verwendet wird {{{ 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 der Datei '''/etc/apt/apt.conf.d/01proxy''' (Dateiname ist ein Beispiel, Datei muss ggf. angelegt werden) folgendes eingetragen werden: {{{ Acquire::http { Proxy "http://SERVER:PORT"; }; }}} `SERVER` kann die IP des Hosts von apt-proxy 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-proxy ``9999``. Es können zusätzlich symbolische Namen in der '''sources.list''' [2] verwendet werden. === 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''' [4] möglich. === 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 == Anpassung bei einer zuvor festgelegten statischen Backend-Konfiguration == Werden am Proxy-Server statisch definierte Backends verwendet, so sind an den Zeilen der '''/etc/apt/sources.list''' zusätzliche Änderungen vorzunehmen. Grundsätzlich sehen die Zeilen so aus {{{ deb http://APTPROXY:PORT/backend dist component }}} * `APTPROXY`: Hostname oder IP des Proxys * `PORT` : Port unter dem der Proxy horcht (default 9999) * `backend`: Name des am Proxy definierten und zu verwendenden Backends Um auf das weiter oben festgelegte Ubuntu-Repository zuzugreifen, muss die entsprechende Zeile demnach so aussehen: Hier nochmal das am Proxy festgelegte Backend: {{{ [ubuntu] ;; Ubuntu archive backends = http://de.archive.ubuntu.com/ubuntu }}} Ursprüngliche Zeile in der '''/etc/apt/sources.list''': {{{ deb http://de.archive.ubuntu.com/ubuntu/ intrepid universe }}} Zeile bei Verwendung des am Proxy definierten Backends: {{{ deb http://APTPROXY:PORT/ubuntu/ intrepid universe }}} (wobei `/ubuntu/` dem Namen des Backends entspricht) Aus den Quellenangaben {{{ deb http://archive.ubuntu.com/ubuntu dapper main restricted universe multiverse deb http://security.ubuntu.com/ubuntu dapper-security main restricted universe multiverse }}} werden z.B. dann die Zeilen {{{ deb http://APTPROXY:9999/ubuntu dapper main restricted universe multiverse deb http://APTPROXY:9999/ubuntu-security dapper-security main restricted universe multiverse }}} = Problembehebung = Sollten Client-Rechner, die unter Ubuntu Dapper laufen, Probleme haben den apt-proxy Server anzusprechen, so sollte in der Datei '''/etc/apt/apt.conf''' die Zeile {{{ Acquire::http::Proxy "false"; }}} in {{{ Acquire::Proxy "false"; }}} geändert werden. Anschließend sollten die Quellen neu eingelesen werden. {{{#!vorlage Hinweis Falls im Profil die Umgebungsvariablen http_proxy oder HTTP_PROXY gesetzt werden (zu erkennen an `export http_proxy=…`), wird es zu einer Fehlermeldung wie ''Verbindung fehlgeschlagen'' kommen (man beachte die apt-proxy-README-Datei). In diesem Fall sollte dieser Anweisungsblock aus dem globalen Profil entfernt werden. }}} = Links = * [http://apt-proxy.sourceforge.net/ Projektseite] {en} * [ubuntu_doc:community/AptProxy: AptProxy im englischen Ubuntu-Wiki] {en} - Grundlage dieser Anleitung * [http://www.linux-user.de/ausgabe/2004/07/054-apt-proxy/ Zwischenlager - Debian-Installation puffern] {de} - Linux-User, 07/2004 * [http://debiananwenderhandbuch.de/apt-proxy.html Debian-Anwender-Handbuch] {de} # tag: Netzwerk, Installation, Proxy, Paketverwaltung, Server