APT ist das Programm, mit dem Debian- und Ubuntu Linux-Distributionen ihre Software installieren und aktualisieren. In ihrer Out-of-the-Box-Konfiguration, wenn Sie verwenden apt
um ein Programm zu installieren, zB:
sudo apt install inkscape
APT lädt das Softwarearchiv von den Distributionsrepository-Servern herunter und installiert es. Dies funktioniert hervorragend, wenn das Softwarepaket klein ist, nur wenige Dateien heruntergeladen werden müssen und Ihre Internetverbindung schnell ist.
Wenn Sie jedoch viel Software installieren müssen und ein Büro voller Computer haben, die alle aktualisiert werden müssen, und Sie eine langsame Internetverbindung haben, kann es lange dauern, bis alles auf jeden Computer heruntergeladen und installiert ist.
Ein Proxyserver, insbesondere ein Caching-Proxy, wie z apt-cacher-ng ist ein Programm, das sich zwischen dem Computer befindet, den Sie aktualisieren möchten, und dem Repository-Server, auf dem sich die Software befindet, die Sie herunterladen. Der Computer, den Sie aktualisieren, fordert die Software vom Proxyserver anstelle des Repositorys an. Der Proxy leitet die Anforderung dann an das Repository weiter, lädt die Software herunter und gibt sie an den Aktualisierungscomputer zurück.
Der clevere Teil ist, dass der Proxy eine Kopie aller heruntergeladenen Softwaredateien aufbewahrt. Wenn ein anderer Computer im lokalen Netzwerk versucht, dieselben Dateien herunterzuladen, dh dieselbe Software installieren oder aktualisieren möchte, verfügt der Proxy bereits über eine Kopie, die er dem anfordernden Computer geben kann, ohne sie herunterladen zu müssen.
Nach dem ersten Download werden alle nachfolgenden Downloads mit der Geschwindigkeit Ihres lokalen Netzwerks gezippt.
Requirements
Um dieses Handbuch zu vervollständigen, benötigen Sie Folgendes:
- A Raspberry PI (jede Version) läuft Raspbian Buster das ist mit Ihrem lokalen Netzwerk verbunden.
- Ein Bildschirm und eine Tastatur zum Anschließen an Ihren Raspberry Pi. Diese sind optional, wenn Sie SSH in Ihren Raspberry Pi einbinden können.
- Ein nicht root, sudo-fähiger Benutzer auf Ihrem Raspberry Pi.
- Ein Debian- oder Ubuntu-System in Ihrem lokalen Netzwerk.
Wenn Sie alle diese Anforderungen erfüllt haben, melden Sie sich als Sudo-Benutzer bei einem Terminal auf Ihrem Raspberry PI an und fahren Sie mit dem nächsten Abschnitt fort.
Installing apt-cacher-ng
Vor der Installation neuer Pakete unter Linux empfiehlt es sich immer, ein Systemupdate durchzuführen. Dadurch wird sichergestellt, dass auf Ihrem System dieselben Paketversionen ausgeführt werden, die in den Distributionsrepositorys verfügbar sind, und dass Ihre lokale Liste der Paketversionen auf dem neuesten Stand ist. Dadurch wird sichergestellt, dass bei der Installation von keine Fehler auftreten apt-cacher-ng
.
Die folgenden Befehle aktualisieren Ihr System:
$ sudo apt update
$ sudo apt upgrade
Jetzt, da Ihr Raspberry PI auf dem neuesten Stand ist, installieren Sie ihn apt-cacher-ng
:
$ sudo apt install apt-cacher-ng
Das Installationsprogramm fragt Sie, ob Sie HTTPS-Tunnel aktivieren möchten apt-cacher-ng
. Sie sollten diese Frage mit „Nein“ beantworten. Wir werden APT so konfigurieren, dass HTTPS-Verbindungen über Proxy übertragen werden apt-cacher-ng
anstatt Tunnel zu brauchen. Darüber hinaus können Sie diese Optionen in der ändern apt-cacher-ng
Konfigurationsdatei später, wenn Sie es brauchen.
In Übereinstimmung mit modernen Software-Konventionen, a systemd
Die Servicedatei wird bei der Installation erstellt und aktiviert apt-cacher-ng
. Das bedeutet, dass apt-cacher-ng
wird beim Booten automatisch gestartet und Sie können auch verwalten apt-cacher-ng
mit den normalen systemd service Befehlen:
$ sudo systemctl start apt-cacher-ng.service
$ sudo systemctl stop apt-cacher-ng.service
$ sudo systemctl restart apt-cacher-ng.service
apt-cacher-ng
wird jetzt als Systemdämon ausgeführt, der den Port überwacht 3142
und bereit, Verbindungen von zu akzeptieren apt
.
Configuring apt on the Raspberry PI
Das erste System, das wir für die Verwendung konfigurieren werden apt-cacher-ng
Proxy wird sein apt
auf dem Raspberry PI. Die Art und Weise, wie wir konfigurieren werden apt
zu verwenden, die apt-cacher-ng
Der Proxy besteht darin, die URLs neu zu schreiben apt
Quelldatei. Die Quelldatei enthält eine Liste der URLs der Repositorys, unter denen die Software der Distribution heruntergeladen werden kann.
Die Hauptquellendatei für Raspbian finden Sie unter /etc/apt/sources.list
und bei einer Neuinstallation sieht es wie folgt aus:
deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
# deb-src http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi
Die einzige aktive (nicht kommentierte) Zeile hier ist die erste, dh:
deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi
Wir müssen diese Zeile ändern, also öffnen Sie die Datei mit einem Texteditor, den wir hier verwenden nano
:
$ sudo nano /etc/apt/sources.list
Ändern Sie die erste Zeile so, dass sie wie folgt aussieht:
deb http://127.0.0.1:3142/raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi
Was Sie hier getan haben, war einzufügen 127.0.0.1:3142
in die URL.
Die IP-Adresse 127.0.0.1
ist immer die IP des lokalen Computers, die oft als "localhost" bezeichnet wird. Das :3142
Teil gibt den Port an.
Speichern und schließen nano
durch Drücken CTRL+o
, ENTER
, CTRL+x
.
Sie müssen jetzt die gleiche Änderung an einer Quelldatei unter vornehmen /etc/apt/sources.list.d/raspi.list
.
apt
und apt-cacher-ng
sind jetzt bereit zum Testen.
Testing apt with apt-cacher-ng
Wann immer du rennst apt
Es wird eine Kopie aller heruntergeladenen Dateien zwischengespeichert. apt
tut dies, damit nein, es werden keine unnötigen Downloads durchgeführt und auch eine lokale Kopie der Installationsarchive aufbewahrt, falls ein Paket neu installiert werden muss und kein Internet vorhanden ist.
Dieses lokale Caching bedeutet das apt
wird den Proxy nicht kontaktieren, wenn Sie ausführen apt update
or apt upgrade
wenn sich das Repository nicht geändert hat. Um den Proxy zu testen, müssen wir ihn daher löschen apt
manuell zwischenspeichern. Die folgenden Befehle löschen alle apt
zwischengespeicherte Pakete:
$ sudo rm -rf /var/lib/apt/lists/
$ sudo rm -rf /var/cache/apt/*
Jetzt testen apt
durch Ausführen eines Updates und Überprüfen auf Fehler:
$ sudo apt update
Sie sollten mehrere Ausgabezeilen sehen, die wie folgt aussehen:
Get:1 http://127.0.0.1:3142/raspbian.raspberrypi.org/raspbian buster InRelease [15.0 kB]
Die URL beginnt http://127.0.0.1:3142/
zeigt, dass die apt
empfängt die Update-Dateien von apt-cacher-ng
.
Sie können auch die apt-cacher-ng
Protokolldatei für Fehler durch Ausführen dieses Befehls:
$ tail -f /var/log/apt-cacher-ng/apt-cacher.log
in einem zweiten Terminal. Wenn Sie keine Fehler feststellen, können Sie ein Debian- oder Ubuntu-System in Ihrem lokalen Netzwerk konfigurieren.
Configuring an Ubuntu or Debian System to use apt-cacher-ng
Auf den Debian- oder Ubuntu-Systemen in Ihrem lokalen Netzwerk, die Sie vom apt-cacher-ng-Proxy profitieren möchten, muss keine zusätzliche Software installiert werden. Alles, was Sie tun müssen, ist, ihre Quelldateien neu zu schreiben, damit sie alle ihre Updates von sammeln apt-cacher-ng
anstatt das Repository direkt zu kontaktieren.
Die Änderung, die Sie an den Quelldateien vornehmen müssen, ist genau die gleiche wie die Bearbeitung, die Sie an den Quellen in der vorgenommen haben Raspberry PI außer dass Sie die IP-Adresse des Raspberry PI anstelle von verwenden müssen 127.0.0.1
.
Dies bedeutet, dass Sie zuerst die IP-Adresse Ihres Raspberry Pi erhalten müssen. Der einfachste Weg, um die IP-Adresse des Raspberry PI zu erhalten, besteht darin, den folgenden Befehl in einem Terminal auf dem Raspberry PI auszuführen:
$ hostname -I
Dadurch werden die IP-Adressen des Raspberry PI ausgedruckt. Verwenden Sie die erste IPv4-IP-Adresse. Hier werde ich die Beispieladresse verwenden 192.168.0.2
. Sie müssen die IP-Adresse Ihres Raspberry PI ersetzen.
Öffnen Sie auf dem Client-Computer die Hauptquellendatei mit einem Texteditor, den wir hier verwenden nano
:
$ sudo nano /etc/apt/sources.list
Die Datei enthält Zeilen mit demselben Format wie die auf den Raspberry PIs /etc/apt/sources.list
. Hier ist eine Beispielzeile aus einer Debian Buster-Installation:
deb http://ftp.debian.org/debian buster main
Sie müssen diese Zeilen wie folgt unter Verwendung der IP Ihres Raspberry PI bearbeiten, z. B.:
deb http://192.168.0.2:3142/ftp.debian.org/debian buster main
Bearbeiten Sie alle Zeilen in /etc/apt/sources.list
und jede andere Quelldatei unter /etc/apt/sources.list.d/
. Löschen Sie dann alle lokal zwischengespeicherten Dateien zum Testen:
$ sudo rm -rf /var/lib/apt/lists/*
$ sudo rm -rf /var/cache/apt/*
Aktualisieren Sie das System erneut:
$ sudo apt update
$ sudo apt upgrade
Die Ausgabe von apt
sollte anzeigen, dass die Update-Dateien von der kommen apt-cacher-ng
Proxy durch Drucken von Zeilen wie den folgenden, die die IP des Proxys enthalten:
Hit:1 http://192.168.0.2:3142/ftp.debian.org/debian buster InRelease
Dieses Gerät ist jetzt vollständig für die Verwendung Ihres neuen Geräts konfiguriert apt
Proxy. Sie müssen alle neuen Quelldateien bearbeiten, die Sie in Zukunft zu diesem Computer hinzufügen, einschließlich aller neuen Zeilen, die für Distributions-Upgrades hinzugefügt werden.
APT over HTTPS
Die Quelldateien, die wir uns bisher angesehen haben, haben alle HTTP-Verbindungen verwendet. Dies ist eine bewusste Entwurfsentscheidung von Debian und Ubuntu, da in den Installationsarchiven interne kryptografische Signaturen integriert sind, die böswillige Manipulationen verhindern. HTTPS bietet daher nicht viel zusätzliche Sicherheit und erhöht gleichzeitig die technische Belastung durch eine große Anzahl geografisch unterschiedlicher Spiegel erheblich.
Die Verwendung von HTTPS bietet jedoch mehrere Vorteile, die bedeuten, dass einige nicht offizielle Repositorys HTTPS verwenden. apt-cacher-ng
unterstützt zwei Methoden zur Behandlung von HTTPS-Repositorys.
Die erste besteht darin, die Verbindungen vom Client direkt an den Repository-Server weiterzuleiten. Dies hat die unglückliche Folge, dass die Pakete nicht zwischengespeichert werden apt-cacher-ng
. Wenn du rennen willst apt-cacher-ng
in diesem Modus dann öffnen /etc/apt-cacher-ng/acng.conf
mit einem Texteditor:
$ sudo nano /etc/apt-cacher-ng/acng.conf
Und fügen Sie die folgende Zeile hinzu:
PassThroughPattern: .*
Dies konfiguriert apt-cacher-ng
Damit können die HTTPS-Verbindungen vom Client zum Repository weitergeleitet werden.
Die zweite Methode besteht darin, die Repository-Zeilen in den Quelldateien des Clients so zu ändern, dass der Client eine Verbindung herstellt apt-cacher-ng
über HTTP aber apt-cacher-ng
stellt dann über HTTPS eine Verbindung zum Repository her. Die Pakete werden auf heruntergeladen apt-cacher-ng
über HTTPS werden sie dann über HTTP an den Client-Computer gesendet. apt-cacher-ng
kann die Pakete zwischenspeichern und wir verlieren nicht die Vorteile von HTTPS.
Die folgende Quellenzeile dient zum Zugriff auf die Docker Repository über HTTPS:
deb [arch=amd64] https://download.docker.com/linux/debian buster stable
Beim Bearbeiten von HTTP-Zeilen haben Sie hinzugefügt 192.168.0.2:3142
in die URL. Wenn Sie HTTPS-Zeilen bearbeiten, müssen Sie diese hinzufügen 192.168.0.2:3142/HTTPS///
z.B:
deb [arch=amd64] http://192.168.1.67:3142/HTTPS///download.docker.com/linux/debian buster stable
Jetzt fordert der Client-Computer das Paket von an apt-cacher-ng
über HTTP und apt-cacher-ng
lädt die Pakete von Docker über HTTPS herunter und speichert sie zwischen.
Administering apt-cacher-ng
Für die Verwaltung steht eine Web-GUI zur Verfügung apt-cacher-ng
in Ihrem lokalen Netzwerk. Um auf diese GUI zugreifen zu können, müssen Sie Ihren Browser auf Folgendes verweisen:
http://<Proxy IP>:3142/acng-report.html
Ersetzen der beispielhaften lokalen Netzwerk-IP, 192.168.0.2
, gibt uns:
http://192.168.0.2:3142/acng-report.html
Der erste und wichtigste Abschnitt der GUI, "Statistik übertragen", enthält Informationen zur Datenmenge, die aus den Repositorys heruntergeladen wurde, im Vergleich zu Daten, die aus dem Cache bereitgestellt wurden. Das folgende Bild zeigt diesen Abschnitt der GUI:
Der Abschnitt "Cache-Effizienz" informiert Sie über die Anzahl der Dateien apt-cacher-ng
wird aus dem Cache Vs bedient, die den Cache umgangen haben. "Treffer" geben Dateien an, die der Proxy aus dem Cache bereitgestellt hat, und "Misses" sind Dateien, die der Proxy-Computer aus dem Repository heruntergeladen und dem Cache hinzugefügt hat.
Managing the cache
Die Dateien, die apt-cacher-ng
Das Herunterladen und Bereitstellen auf den Clientcomputern in Ihrem lokalen Netzwerk wird veraltet, wenn die Entwickler dem Repository eine neue Version hinzufügen. Wenn dies auftritt, sind diese abgestanden apt-cacher-ng
müssen sie aus dem Cache entfernen, da sie nicht mehr benötigt werden und Speicherplatz auf Ihrem Laufwerk belegen. Der Raspberry PI überprüft den Cache und entfernt die veralteten Dateien automatisch.
Bei der Installation apt-cacher-ng
Sie haben auch eine installiert cron
Datei unter:
/etc/cron.daily/apt-cacher-ng
Dies wird von ausgeführt cron
jeden Tag, der den Cache für Sie löscht.
Wenn Sie den Cache manuell überprüfen und löschen möchten, sollten Sie sich bei der Web-GUI anmelden und auf die Schaltfläche "Scan und / oder Ablauf starten" klicken. Dies ist normalerweise nicht erforderlich. Möglicherweise müssen Sie dies jedoch tun, wenn Sie von schnell aktualisierten Repositorys aktualisieren.
Sie haben jetzt eine effiziente apt
Proxy, der die Netzwerkbelastung durch große, wiederholte Systemaktualisierungen in Ihrem Büro oder zu Hause verringert.
Interessiert an der Erkundung von Raspberry Pi, Schauen Sie sich diesen Online-Kurs an.