ubuntuusers.de

apt-proxy

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.


Anmerkung: Programm nicht mehr in den Paketquellen enthalten

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

apt-proxy 🇬🇧 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 Ubuntu 10.04 in den offiziellen Paketquellen enthalten. Das zu installierende Paket [1] heißt:

  • apt-proxy (universe )

Befehl zum Installieren der Pakete:

sudo apt-get install apt-proxy 

Oder mit apturl installieren, Link: apt://apt-proxy

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 Port9999):

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: Squid-Handbuch 🇩🇪 → 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.

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.

Diese Revision wurde am 23. Juli 2015 12:41 von Justin-Time erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Installation, Netzwerk, Paketverwaltung, Server, Proxy