Inspiriert durch Liohs Video vom letzten Samstag "Schnellsten Mirror ermitteln", habe ich mich gefragt, wie das bei Arch Linux und seinen Derivaten aussieht (Manjaro, EndeavourOS, Garuda Linux, SteamOS, usw.). Muss man von Hand in die Auswahl der Spiegelserver eingreifen? Nein, muss man nicht.
Was sind Spiegelserver (Mirrors)?
Ein Spiegelserver (englisch: mirror), oftmals kurz auch einfach als „Spiegel“ bezeichnet, hält in Rechnernetzwerken eine exakte Kopie eines Datensatzes vor.
Zentrale Server grosser Projekte haben oft nicht die Datenübertragungsrate, um ihre Dienste allen Interessenten in vertretbarer Zeit zur Verfügung zu stellen. Daher werden die Daten auf anderen Servern „gespiegelt“, es wird also ein 1:1-Abbild erstellt und den Interessenten dort zur Verfügung gestellt.
So gibt es beispielsweise von allen Linux-Distributionen auf mehreren Servern im Internet Kopien. Auf diese Weise liegen die Daten auf verschiedenen Rechnern zum Herunterladen bereit, und man erreicht eine Verteilung der Ressourcen beim Zugriff auf stark frequentierte Daten. Die jeweiligen Spiegelserver werden beispielsweise jede Nacht um 3 Uhr mit den aktuellen Daten der Quelle synchronisiert.
Die Arch Mirrors
Wer sich die Spiegelserver von Arch Linux ansehen möchte, kann dies auf dieser Seite tun. Als ich diesen Artikel schrieb, wurden dort 747 Mirrors aus ca. 100 Ländern gelistet. Selbstverständlich handelt es sich dabei nur um aktive Mirrors. Was man nicht sieht, ist die Geschwindigkeit dieser Spiegelserver.
Möchte man wissen, welche Server von eurer Arch-basierten Distribution verwendet werden, könnt ihr das mit dem Befehl cat /etc/pacman.d/mirrorlist nachsehen. Wer mit Manjaro unterwegs ist, kann den Paketmanager Pamac starten und findet dort unter Einstellungen/Allgemein:
Standardmässig ist hier kein bestimmter Mirror eingestellt, sondern die weltweite Liste der Spiegelserver. Beim Aktualisieren der Pakete wählt Arch Linux selbst aus, von welchem Server die Updates gezogen werden. Dabei werden die nächstgelegenen Mirrors bevorzugt. Die nächstgelegenen Server sind zwar nicht zwingend die schnellsten, dennoch korrelieren Nähe und Geschwindigkeit häufig.
Mehr Details
Wie oben geschrieben, muss man an dieser Einstellung nichts ändern. Die Arch-Entwickler haben sich sehr gut überlegt, wie die besten Quellen für die Aktualisierung der Pakete gefunden werden können. Dennoch gibt es die Möglichkeit, die Mirror-Liste zu optimieren. Im Arch-Wiki findet man diesen Tipp:
Heben Sie die Kommentare zu 5 bevorzugten Spiegeln auf und setzen Sie sie an den Anfang der Mirrorlist-Datei. Auf diese Weise ist es einfach, sie zu finden und sie zu verschieben, wenn der erste Spiegel auf der Liste Probleme hat. Es macht auch das Zusammenführen von Mirrorlisten-Updates einfacher.
Wem das sinnvoll erscheint, fragt sich vielleicht, wie man das macht. Nun, nichts einfacher als das. Öffnet ein Terminal und geht diesen Befehl ein:
sudo pacman-mirrors --interactive && sudo pacman -Syu
Halt, halt, halt! Gebt niemals einen Befehl im Terminal ein, den ihr nicht verstanden habt. Womit haben wir es hier zu tun? Der Befehl (in Wahrheit sind es zwei Befehle) erfordert Root-Rechte (sudo). pacman-mirrors ruft die verfügbaren Arch Linux Spiegelserver ab und listet sie auf. Das sieht so aus:
Die Liste ist viel länger, als im Screenshot zu sehen ist. Der Befehl wird mit der Option --interactive aufgerufen. Nachdem die Liste der Mirrors mit den Angaben zur Geschwindigkeit und den Ländern vollständig ist, wird eine GUI-Anwendung gestartet:
Dort seht ihr alle Mirrors und könnt nach Land oder Reaktionszeit sortieren. Falls ihr dem Tipp aus dem Arch-Wiki folgen möchtet, könnt ihr die fünf schnellsten Spiegelserver auswählen und mit OK bestätigen. Diese werden dann in die Mirror-Datei von Arch Linux geschrieben und für zukünftige Updates verwendet. Falls ihr das macht, solltet ihr unbedingt mindestens einen Global-Mirror auswählen.
Der zweite Befehl: sudo pacman -Syu aktualisiert alle installierten Pakete, die es nötig haben. Puh, immer diese kryptischen Parameter.
Um das Ergebnis zu überprüfen, könnt ihr noch einmal die Datei /etc/pacman.d/mirrorlist anschauen. Bei mir sieht sie nun so aus:
cat /etc/pacman.d/mirrorlist
## Manjaro Linux Benutzerdefinierte Mirrorliste
## Country : Global
Server = https://mirrors.manjaro.org/repo/stable/$repo/$arch
## Country : Global
Server = https://mirrors2.manjaro.org/stable/$repo/$arch
## Country : Switzerland
Server = https://mirror.init7.net/manjaro/stable/$repo/$arch
## Country : Switzerland
Server = https://ipng.mm.fcix.net/manjaro/stable/$repo/$arch
## Country : Germany
Server = https://mirror.alpix.eu/manjaro/stable/$repo/$arch
Zum Schluss dieses Artikels empfehle ich, nicht an der Mirror-Liste herumzufummeln, sondern sie so zu belassen, wie sie von eurer Distribution eingestellt wurde. Das ist in der Regel die beste Option.
Nachtrag
Im Befehl sudo pacman -Syu genügt ein 'y'. Das habe ich im Artikel korrigiert. Ein Dank geht an opensorcerer, der darauf hingewiesen hat.
Ausserdem gab es den Hinweis, dass der Befehl pacman-mirrors --interactive Manjaro-spezifisch ist. Wer mit einer anderen Arch-basierten Distro unterwegs ist, kann sich Reflector ansehen. Zudem hat Tealk als Reaktion auf den Artikel ein Skript geschrieben (Arch Mirrorlist Updater), mit dem man Ähnliches erreicht.
Und Gerd zeigt in seinem Kommentar Beispiele, wie man es bei verschiedenen Arches am besten macht.
Dieser Nachtrag ist wieder einmal ein Beispiel dafür, wie gut sich die Community ergänzt. Vielen Dank!
Quellen:
https://gnulinux.ch/schnellsten-mirror-ermitteln
https://wiki.archlinux.org/title/Arch-based_distributions
https://de.wikipedia.org/wiki/Spiegelserver
https://wiki.archlinux.org/title/Mirrors
Ich habe in meiner mirroliste nur uni-server eingetragen, fahre damit seit Jahren sehr gut mit.
Der Befehl pacman-mirrors ist Manjaro-spezifisch. Allgemein vermendet mensch reflektor (CLI) oder grafisch reflektor-simple.
Horoable mention: reflector. Beispiel:
reflector -c de --ipv6 -n 10 --sort age -p https --save /etc/pacman.d/mirrorlist
Schreibt eine Liste von -n 10 Servern aus dem Land -c de, die --ipv6 unterstützen und -p https sprechen, sortiert nach Alter (neueste oben), und speichert sie nach /etc/pacman.d/mirrorlist.
Und bitte nicht -Syyu verwenden! Das ist zum Troubleshooting gedacht, wenn es Probleme mit pacmans DBs gibt. Das yy lädt alle Datenbanken erneut herunter, auch bei identischer Checksumme, und zeugt vollkommen unnötigen Traffic, wenn yy zur Gewohnheit wird.
pacman-mirrors ruft die verfügbaren Manjaro Linux Spiegelserver ab, nicht Arch Spiegelserver! Wenn man Manjaro unstable verwendet gilt Manjaro Repo = (fast gleich) Arch Repo. Bei Manjaro unstable verwendet man am besten "sudo pacman-mirrors -c Germany -aP all -t 5" . Damit werden nur die aktuell mit dem Manjaro repository synchronisierten Spiegelserver aus DE ausgewählt und nach Geschwindigkeit gerankt. Bei Endeavour: sudo reflector --protocol https --verbose --latest 25 --sort rate --save /etc/pacman.d/mirrorlist && eos-rankmirrors --verbose Bei Garuda: garuda-update (reflector ist in diesem Script mit drin)
Es gibt einen Nachtrag im Artikel, der eure Kommentare berücksichtigt.