Udržování aktuálního seznamu zrcadel ve vašem Arch Linuxu přináší některé významné výhody. Pokud používáte aktualizovaný mirrorlist, můžete se snadno vyhnout pomalé rychlosti stahování a chybovým zprávám s vypršením časového limitu při instalaci a aktualizaci balíčků. Tento tutoriál vysvětluje, co je Reflektor a jak získat nejnovější seznam zrcadel v Arch Linuxu pomocí Reflector.
Co je reflektor?
Reflektor je jednoduchý modul a skript Pythonu 3, který kontroluje a načítá nejaktuálnější mirrorlist seřazený podle rychlosti z Stav zrcadlení stránku a uloží je do /etc/pacman.d/mirrorlist
soubor ve vašem systému Arch Linux.
Obecně /etc/pacman.d/mirrorlist
soubor bude obsahovat jeden zrcadlový server pro každou zemi. V každé zemi by však mělo být více než jen jeden server, ale soubor se seznamem zrcadlení bude mít obvykle pouze jeden.
Jak tedy přidáte nebo načtete nejnovější a aktuální seznam zrcadel dle vašeho výběru v Arch Linuxu? Zde je Reflektor přichází na pomoc.
Reflector načte a vyfiltruje seznam nejnovějších a nejrychlejších zrcadel Arch Linuxu na základě rychlosti, země a stáří (poslední synchronizace serveru).
Reflector je bezplatný a open source skript Python, který funguje dobře na Arch Linuxu a jeho derivátech, jako je EndeavourOS a Manjaro Linux.
1. Nainstalujte Reflector v Arch Linux, EndeavourOS, Manjaro
Chcete-li nainstalovat Reflector v Arch Linuxu a jeho variantách, jako je EndeavourOS a Manjaro, spusťte z terminálu následující příkaz:
$ sudo pacman -S reflector rsync curl
Výše uvedený příkaz nainstaluje Reflector spolu s jeho závislostmi balíčků rsync a curl.
2. Získejte nejnovější seznam zrcadel pomocí Reflector v Arch Linux
2.1. Zálohujte aktuální seznam zrcadel
Před spuštěním Reflectoru musíte zálohovat výchozí soubor se seznamem zrcadel. Protože Reflector jej přepíše a nahradí stávající seznam zrcadel novým.
Chcete-li zálohovat aktuální seznam zrcadel, spusťte:
$ sudo cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak
2.2. Získejte nejnovější zrcadla N a seřaďte je podle rychlosti stahování
Dovolte nám načíst 20 nejnovějších zrcadel a seřadit seznam zrcadel podle jejich rychlosti stahování a uložit je do /etc/pacman.d/mirrorlist
soubor pomocí příkazu:
$ sudo reflector --latest 20 --protocol https --sort rate --save /etc/pacman.d/mirrorlist
Upozorňujeme, že tím nahradíte stávající zrcátka novými zrcátky.
Pojďme rozebrat výše uvedený příkaz a uvidíme, co jednotlivé možnosti dělají.
--latest 20
- načíst naposledy synchronizované servery--protocol https
- načísthttps
povolená zrcadla--sort rate
- seřadit seznam zrcadel podle rychlosti stahování--save /etc/pacman.d/mirrorlist
-
Můžete to ověřit uvedením obsahu /etc/pacman.d/mirrorlist
soubor.
$ cat /etc/pacman.d/mirrorlist
Ukázkový výstup:
##################################################################### ########### Arch Linux mirrorlist generated by Reflector ########### ##################################################################### With: reflector --latest 20 --protocol https --sort rate --save /etc/pacman.d/mirrorlist When: 2021-06-10 09:51:51 UTC From: https://www.archlinux.org/mirrors/status/json/ Retrieved: 2021-06-10 09:49:34 UTC Last Check: 2021-06-10 09:15:02 UTC Server = https://mirror.osbeck.com/archlinux/$repo/os/$arch Server = https://asia.mirror.pkgbuild.com/$repo/os/$arch Server = https://archlinux.thaller.ws/$repo/os/$arch Server = https://arch.mirror.constant.com/$repo/os/$arch Server = https://mirror.f4st.host/archlinux/$repo/os/$arch Server = https://phinau.de/arch/$repo/os/$arch Server = https://mirrors.neusoft.edu.cn/archlinux/$repo/os/$arch Server = https://mirror.pseudoform.org/$repo/os/$arch Server = https://arch.mirror.square-r00t.net/$repo/os/$arch Server = https://mirror.pkgbuild.com/$repo/os/$arch Server = https://archlinux.uk.mirror.allworldit.com/archlinux/$repo/os/$arch Server = https://archlinux.za.mirror.allworldit.com/archlinux/$repo/os/$arch Server = https://mirror.telepoint.bg/archlinux/$repo/os/$arch Server = https://mirror.lty.me/archlinux/$repo/os/$arch Server = https://mirror.chaoticum.net/arch/$repo/os/$arch Server = https://mirror.efect.ro/archlinux/$repo/os/$arch Server = https://archmirror.it/repos/$repo/os/$arch Server = https://archlinux.mailtunnel.eu/$repo/os/$arch Server = https://archlinux.qontinuum.space:4443/$repo/os/$arch Server = https://ftp.halifax.rwth-aachen.de/archlinux/$repo/os/$arch
Nyní můžete instalovat, aktualizovat a upgradovat balíčky z nejnovějších zrcadel.
$ sudo pacman -Syu
$ sudo pacman -S <package_name>
2.3. Získejte nejnovější zrcátka N a seřaďte je podle věku
Chcete-li načíst nejlepší zrcadla a seřadit je podle jejich stáří, tj. poslední synchronizace serveru, spusťte:
$ sudo reflector --latest 20 --protocol https --sort age --save /etc/pacman.d/mirrorlist
2.4. Načíst seznam zrcadel pro konkrétní zemi
Zrcátka můžete také omezit na vybrané země. Pokud například žijete v Indii, možná budete chtít aktualizovat mirrorlist servery pouze z Indie.
Chcete-li zobrazit seznam všech dostupných zrcadel Arch Linuxu po celém světě, spusťte:
$ reflector --list-countries
Ukázkový výstup:
Country Code Count ---------------------- ---- ----- Australia AU 19 Austria AT 6 Bangladesh BD 1 Belarus BY 4 Belgium BE 3 Bosnia and Herzegovina BA 2 Brazil BR 11 Bulgaria BG 11 Canada CA 20 Chile CL 8 [...]
Jak vidíte na výše uvedeném výstupu, reflektor uvádí seznam dostupných zrcadel na světě spolu s kódem země a počtem zrcadel v každé zemi.
V době psaní této příručky se nejvíce zrcadel Arch Linuxu nachází v USA (134 zrcadel), Německo (114) a Nizozemsko (51).
Chcete-li načíst zrcadlo z konkrétní země, můžete použít název země nebo kód země nebo kombinaci obojího.
Následující příkaz načte 5 nejlepších zrcadel z Indie , seřaďte je podle rychlosti stahování a uložte je do souboru mirrorlist.
$ sudo reflector --verbose --country 'India' -l 5 --sort rate --save /etc/pacman.d/mirrorlist
Následuje stručný souhrn toho, co tyto příznaky ve výše uvedeném příkazu udělají.
--verbose
- vytiskne více informací než normálně.--country India
- moje preferované umístění zrcadla.--l 5
- získá pět nejlepších zrcadel Indie.--sort rate
- seřadí podle rychlosti stahování.--save
- uložte stažený seznam zrcadel do/etc/pacman-d/mirrorlist
.
Ověřte aktualizovaný seznam zrcadel pomocí příkazu:
$ cat /etc/pacman.d/mirrorlist
Ukázkový výstup:
################################################################################ ################# Arch Linux mirrorlist generated by Reflector ######################### ################################################################################ # With: reflector --verbose --country India -l 5 --sort rate --save /etc/pacman.d/mirrorlist # When: 2021-06-10 10:27:06 UTC # From: https://www.archlinux.org/mirrors/status/json/ # Retrieved: 2021-06-10 10:26:49 UTC # Last Check: 2021-06-10 09:15:02 UTC Server = http://mirrors.piconets.webwerks.in/archlinux-mirror/$repo/os/$arch Server = https://mirrors.piconets.webwerks.in/archlinux-mirror/$repo/os/$arch Server = http://mirror.cse.iitk.ac.in/archlinux/$repo/os/$arch
Bohužel jsou v Indii k dispozici pouze tři zrcadla Arch Linuxu.
2.5. Načíst seznam zrcadel z více zemí
Můžete také zadat více zemí oddělenými čárkami, jak je uvedeno níže.
$ sudo reflector --country 'United States,India' -l 10 --age 12 --protocol https --sort rate --save /etc/pacman.d/mirrorlist
Tento příkaz vybere nejlepších 10 zrcadel HTTPS synchronizované během posledních 12 hodin a nachází se buď ve Spojených státech nebo Indie , seřaďte je podle rychlosti stahování a přepište soubor /etc/pacman.d/mirrorlist
soubor.
2.6. Načtení seznamu zrcadel seřazených podle zemí
Chcete-li získat seznam všech zemí seřazený, spusťte následující příkaz:
$ sudo curl -o /etc/pacman.d/mirrorlist https://archlinux.org/mirrorlist/all/
Po načtení zrcadel seřazených podle zemí upravte svůj /etc/pacman.d/mirrorlist
soubor:
$ sudo nano /etc/pacman.d/mirrorlist
Chcete-li ji aktivovat, odkomentujte zrcadlenou adresu URL dle vašeho výběru.
Například jsem povolil zrcadla z Indie. Odstranil jsem tedy symbol (#) před každou adresou URL.
[...] India Server = http://mirror.cse.iitk.ac.in/archlinux/$repo/os/$arch Server = http://mirrors.piconets.webwerks.in/archlinux-mirror/$repo/os/$arch Server = https://mirrors.piconets.webwerks.in/archlinux-mirror/$repo/os/$arch [...]
Uložte a zavřete soubor. Aktualizujte seznamy úložišť pomocí příkazu:
$ sudo pacman -Syu
2.7. Vyberte nejrychlejší zrcadla
Reflector dokáže získat nejrychlejší zrcadlo pro váš Arch Linux.
Následující příkaz načte 5 nejrychlejších 10 zrcadel HTTPS se sídlem ve Spojených státech , seřadí je podle rychlosti stahování a přepíše soubor /etc/pacman.d/mirrorlist
soubor.
$ sudo reflector -f 5 --country 'United States' --protocol https --sort rate --save /etc/pacman.d/mirrorlist
2.8. Zadejte protokol
Můžete vybrat aktuální zrcadla, která podporují konkrétní typ protokolu, například https
, http
, ftp
atd.
Tento příkaz například vybere 5 nejaktuálnější zrcadla ze Spojených států které podporují HTTP
a přepsat /etc/pacman.d/mirrorlist
soubor:
$ sudo reflector --latest 5 --protocol http --country 'United States' --save /etc/pacman.d/mirrorlist
Další podporované možnosti jsou --isos
který vrátí pouze zrcadla, která hostují ISO, --ipv4
to vrátí pouze zrcadla, která podporují IPv4, a --ipv6
vrací pouze zrcadla, která podporují IPv6.
3. Aktualizujte seznam zrcadel Arch Linuxu automaticky při spouštění
Reflektor obsahuje systemd
servisní a časové jednotky, které lze použít k automatické aktualizaci zrcadlového seznamu Pacmana.
3.1. Povolit a spustit službu reflektoru systemd
Od verze 2020.8 se Reflector dodává s reflector.service
. Chcete-li automaticky aktualizovat seznam zrcadel Arch Linuxu při každém restartu, jednoduše povolte a spusťte tuto službu pomocí příkazů:
$ sudo systemctl enable reflector.service
$ sudo systemctl start reflector.service
Služba reflector.service spustí reflektor s parametry zadanými v /etc/xdg/reflector/reflector.conf
soubor.
Výchozí nastavení po většinu času stačí. Zde je obsah reflector.conf
soubor:
$ cat /etc/xdg/reflector/reflector.conf
Ukázkový výstup:
# # Empty lines and lines beginning with "#" are ignored. All other lines should # contain valid reflector command-line arguments. The lines are parsed with # Python's shlex modules so standard shell syntax should work. All arguments are # collected into a single argument list. # # See "reflector --help" for details. # Recommended Options # Set the output path where the mirrorlist will be saved (--save). --save /etc/pacman.d/mirrorlist # Select the transfer protocol (--protocol). --protocol https # Select the country (--country). # Consult the list of available countries with "reflector --list-countries" and # select the countries nearest to you or the ones that you trust. For example: # --country France,Germany # Use only the most recently synchronized mirrors (--latest). --latest 5 # Sort the mirrors by synchronization time (--sort). --sort age
Tento soubor můžete také upravit a změnit parametry podle svých požadavků. Tento soubor přijímá všechny argumenty příkazového řádku reflektoru.
Argumenty můžete seskupit na jeden řádek nebo rozdělit na mnoho řádků s volitelnými prázdnými řádky a řádky komentářů začínajícími #
.
3.2. Povolit a spustit časovač reflektoru systemd
Reflector dodává další systémovou jednotku s názvem reflector.timer
, který spustí reflector.service
týdně.
Chcete-li jej povolit a spouštět automaticky při spouštění systému, spusťte jeden po druhém následující příkazy:
$ sudo systemctl enable reflector.timer
$ sudo systemctl start reflector.timer
Ve výchozím nastavení se spustí reflector.service
jednou za týden. Pokud nechcete čekat na naplánovaný čas, můžete spustit službu reflector.service a okamžitě aktualizovat seznam zrcadel pacmana:
$ sudo systemctl start reflector.service
Závěr
V této příručce jsme se naučili, co je Reflector, jak získat aktuální seznam zrcadel Pacman pro váš systém Arch Linux pomocí skriptu Reflector a konečně, jak automaticky aktualizovat seznam zrcadel Arch Linuxu.