Vermeiden Sie Pacman-Kopfschmerzen unter Arch Linux, indem Sie die Aktualisierung der Mirror-Liste automatisieren
Linux
2024-02-12T13:00:14Z
Schnelle Links
Das Wichtigste in Kürze
- Mirrors sind Server, die Softwarepakete in Linux-Repositories enthalten. Die Aktualität Ihrer Mirror-Liste ist entscheidend für Anwendungsinstallationen und Systemaktualisierungen.
- Zur manuellen Aktualisierung der Arch-Mirror-Liste müssen Sie eine Liste der Mirrors in Ihrer Region erstellen, diese in eine Datei einfügen und für pacman speichern.
- Reflector ist ein Dienstprogramm, das Mirror-Listen erstellt und die Mirrorlist-Datei aktualisiert. Es kann auf der Kommandozeile oder als Dienst mit anpassbaren Optionen verwendet werden.
Mirrors sind Server, die die Repositories einer Linux-Distribution replizieren. Arch Linux hat viele Mirrors, die rund um den Globus verteilt sind. Wir zeigen Ihnen zwei Möglichkeiten, wie Sie auswählen können, welche Mirrors Ihr Arch Linux Computer verwendet.
Warum Mirrors wichtig sind
Alle Softwarepakete, die den Benutzern einer Linux-Distribution zur Verfügung stehen, werden in Repositories gespeichert. Repositories sind einfach Server, die über das Internet zugänglich sind. Wenn Sie eine Anwendung installieren, muss Ihr Paketmanager eine Verbindung zu einem Repository herstellen, damit er die Installationsdateien abrufen kann.
Wie bei allen Cloud-basierten Ressourcen gibt es auch bei Repositorys Probleme mit der Bandbreite und Verfügbarkeit. Zu viele Verbindungen und zu viel Netzwerkverkehr können dazu führen, dass der Server ins Stocken gerät und träge wird. Hardwareausfälle oder geplante Wartungsarbeiten können ein Repository außer Betrieb setzen.
Die Distributionen nutzen ein Netzwerk von Nachahmer-Repositories, die auf der ganzen Welt verteilt sind. Diese ermöglichen schnellere Verbindungen zu den Benutzern, indem sie Repositories in ihren Regionen bereitstellen, anstatt alle zu zwingen, sich mit dem Hauptrepository zu verbinden.
Es ist wichtig, dass die Liste der Spiegelserver, die Ihr Computer verwendet, auf dem neuesten Stand ist, da Anwendungsinstallationen und Systemaktualisierungen von ihnen abhängen.
Manuelles Aktualisieren der Arch-Mirror-Liste
Standardmäßig aktualisiert Arch die Mirror-Liste nicht automatisch. Bei der Installation wird eine Mirror-Liste erstellt, aber wenn Sie nicht selbst aktiv werden, wird diese Liste nie geändert.
Das manuelle Aktualisieren der Liste funktioniert zwar, ist aber nicht sehr bequem. Eine Automatisierung des Prozesses ist die beste Lösung. Aber Sie können, wenn Sie wollen, Ihre Mirror-Liste von Hand aktualisieren.
Der Ort, an dem Sie beginnen sollten, ist der Arch Linux Pacman Mirrorlist Generator. Unser Ziel ist es, eine Liste der Spiegel in Ihrer Region und einige aus anderen Regionen für Redundanz zu erhalten.
Ich wähle "United Kingdom" aus der scrollenden Liste und "HTTPS" und "IPV4" aus den Checkboxen. Ich habe das Kontrollkästchen "Use Mirror Status" aktiviert, so dass nur aktive Mirrors in den Ergebnissen enthalten sind.
Um die Ergebnisse zu sehen, klicken Sie auf die Schaltfläche "Liste generieren".
Die passenden Mirrors werden aufgelistet. Kopieren Sie diesen Text und fügen Sie ihn in Ihren Editor ein. Beachten Sie, dass alle Zeilen mit einem Rautezeichen "#" beginnen, d.h. sie werden als Kommentare behandelt. Um einen Mirror zu aktivieren, entfernen Sie das Rautenzeichen am Anfang der entsprechenden Zeile.
Sie können diesen Vorgang für andere Regionen wiederholen, indem Sie die Ergebnisse jedes Mal in Ihren Editor einfügen. Ich habe auch Mirrors in Deutschland und Schweden ausgewählt. Auf diese Weise wird pacman versuchen, die Spiegel in Schweden und Deutschland zu benutzen, falls die britischen Spiegel nicht funktionieren oder nicht erreichbar sind.
pacman liest seine Spiegelserver aus einer Datei namens "/etc/pacman.d/mirrorlist" Sie müssen diese Datei bearbeiten und ihren Inhalt durch die neue Liste ersetzen.
sudo gedit /etc/pacman.d/mirrorlist
Ersetzen Sie "gedit" durch Ihren Lieblingseditor. Kopieren Sie die soeben erstellte Liste und fügen Sie sie in die Datei mirrorlist ein, wobei Sie den ursprünglichen Inhalt ersetzen. Speichern Sie die Datei und schließen Sie Ihren Editor.
pacman wird nun unsere neue Liste verwenden.
Was ist Reflector, und was macht es?
Reflector ist ein Dienstprogramm zum Erstellen von Mirrorlisten und zum optionalen Aktualisieren der Mirrorlistendatei. Sie können es auf der Kommandozeile oder als Dienst verwenden.
Sie können ihm Parameter übergeben, um die Regionen auszuwählen, aus denen Sie Mirrors verwenden wollen, und Sie können die Ergebnisse z.B. nach der Download-Geschwindigkeit sortieren lassen.
In Arch Linux ist Reflector nicht standardmäßig installiert, aber in anderen Arch-basierten Distributionen könnte es das sein.
Installation von Reflector unter Arch Linux
Die Installation von Reflector ist einfach, solange Sie eine funktionierende Mirror-Liste haben. Wenn Sie keine haben, wird pacman nicht funktionieren. In diesem Fall müssen Sie die oben genannten Schritte durchführen, um manuell eine funktionierende Mirror-Liste zu erstellen.
Der pacman-Befehl lautet:
sudo pacman -S reflector
Reflector auf der Kommandozeile verwenden
Die Verwendung von Reflector auf der Kommandozeile kann Ihre bestehende Mirror-Liste überschreiben. Wenn Sie also Ihre bestehende Mirror-Liste als Backup aufbewahren wollen, erstellen Sie eine Kopie davon, bevor Sie beginnen.
sudo cp /etc/pacman.d/mirrorlist /etc/pacman.d/old-mirrorlist
Dieses Beispiel überschreibt Ihre Mirrorliste nicht.
reflector --verbose --ipv4 --protocol https --score 10 --sort rate
Die von uns verwendeten Optionen waren:
- verbose: Gibt eine detailliertere Ausgabe, wenn möglich.
- ipv4: Wählt Mirrors aus, die das IPv4-Protokoll unterstützen.
- protokoll: Wählt Mirrors aus, die das angegebene Protokoll unterstützen, z. B. HTTP, HTTPS oder FTP.
- ergebnis: Wählen Sie eine Anzahl von Mirrors aus, die die beste Punktzahl haben. Jeder Mirror erhält eine Punktzahl, wobei niedrigere Punktzahlen besser sind als höhere Punktzahlen. Diese wird aus den Verzögerungszeiten der Verbindung, der durchschnittlichen Verbindungsdauer und dem Prozentsatz der erfolgreich abgeschlossenen Testverbindungen berechnet. Beachten Sie, dass sich die "10" in der Befehlszeile darauf bezieht, wie viele Spiegelserver mit der besten Punktzahl zurückgegeben werden sollen. Sie bezieht sich nicht auf die Punktzahl selbst.
- sortieren: Sortiert die Ergebnisse. Wir haben uns für eine Sortierung nach der Download-Rate entschieden. pacman probiert die Spiegel in der Spiegel-Liste von oben nach unten aus, bis es einen funktionierenden Spiegel findet, daher ist es sinnvoll, den schnellsten Spiegel zuerst in der Liste zu haben.
Reflector unterstützt eine Menge Befehlszeilenoptionen. Sie finden diese jedoch nicht in der Reflector-Manualseite, sondern müssen die Hilfe-Option verwenden:
reflector --help
Wie wir gesehen haben, können Sie durch das Weglassen der Option --save Reflector-Befehle trocken ausführen, ohne Ihre bestehende Mirror-Liste zu gefährden. Lassen Sie uns die Option --save einfügen, damit wir unsere Mirrorlist-Datei aktualisieren können. Sie müssen sudo verwenden, wenn Sie diese Option benutzen.
sudo reflector --verbose --country DE,SE,GB --protocol https --sort rate --latest 20 --download-timeout 6 --save /etc/pacman.d/mirrorlist
Unsere neuen Optionen sind:
- land: Wählen Sie die Regionen aus, aus denen wir Mirrors aufnehmen wollen. Sie können Ländercodes oder Ländernamen verwenden.
- neueste: Wir wollen die 20 zuletzt aktualisierten Spiegelserver verwenden.
- download-Zeitlimit: Legt die Dauer in Sekunden fest, bevor Reflector ein Repository als offline betrachtet.
- speichern: Die Datei, in die die Ergebnisse geschrieben werden sollen. Der Standardspeicherort auf Arch ist "/etc/pacman.d/mirrorlist"
Sie können Ihre Mirrorliste mit den Befehlen cat oder less einsehen.
less /etc/pacman.d/mirrorlist
Reflector schreibt einen Header mit Zeitstempel, so dass Sie sehen können, wann die letzte Aktualisierung stattgefunden hat.
Verwendung des Reflector-Dienstes
Reflector bietet einen Dienst und einen Zeitgeber. Wenn Sie den Dienst reflector.service aktivieren und starten, wird Ihre Mirror-Liste bei jedem Start Ihres Computers aktualisiert. Der Nachteil ist eine langsamere Startzeit.
Eine bessere Lösung ist es, stattdessen den reflector.timer zu aktivieren und zu starten. Dieser lässt den reflector.service einmal pro Woche für Sie laufen.
sudo systemctl enable reflector.timer
sudo systemctl start reflector.timer
Um die Reflector-Konfigurationsdatei zu bearbeiten, verwenden Sie Ihren bevorzugten Editor mit diesem Befehl:
sudo gedit /etc/xdg/reflector/reflector.conf
Sie können sehen, dass die Kommandozeilenoptionen in separaten Zeilen aufgelistet sind.
Sie können die Werte ändern oder die Optionen hinzufügen, die Sie verwenden möchten.
Um die Konfigurationsdatei für den Timer zu bearbeiten, verwenden Sie:
sudo gedit /usr/lib/systemd/system/reflector.timer
Wie man Timer konfiguriert, haben wir in einem anderen Artikel ausführlich beschrieben.
Verwenden Sie den Timer und aktualisieren Sie, wann Sie wollen
Sie können Ihre Mirror-Liste jederzeit manuell aktualisieren, indem Sie Reflector auf der Kommandozeile ausführen. Wenn Sie den Befehl in einen Alias oder eine Bash-Shell-Funktion umwandeln, müssen Sie sich nicht alle Parameter merken.