Pacman-mirrors
Views
Actions
Namespaces
Variants
Tools
Pacman-Mirrors
Pacman-mirrors is a Manjaro specific utility for generating and maintaining the system mirrorlist. This article covers current version 4.7.1. Pacman-mirrors uses the information available on the Mirrorservice
Purpose
Manjaro uses pacman for system maintenance, updates and new installs. For pacman to function, a list of servers, or more commonly known as mirrors, with Manjaro software packages is required. As Manjaro has many mirrors all over the world it is feasible to use the mirrors closest to your location and preferably also up-to-date.
Use
For most functions, a working internet connection is required. From v4, Pacman-Mirrors will check if network is online. It is doing so by querying https://manjaro.org.The app is run by an ordinary user with superuser rights from the console and when no arguments are given it will display a usage description as if -h had been given.
$ sudo pacman-mirrors
Exactly how the app generates the mirrorlist is controlled by supplying arguments on the commandline.
IMPORTANT
It cannot be stressed enough, that every run of pacman-mirrors requires you to syncronize your database
$ sudo pacman -Syy
If you fail to do so, the issue/s which had you make change might not be solved. Furthermore you might run into partial-updated scenario which can cause havoc in your system.
TL:DR - Samples please
All commands uses the available mirror pool. The mirror pool can be the default full mirror pool or a customized mirror pool. Commands for info do not require superuser - changing systemfiles do.
Commands giving information
List available countries
pacman-mirrors --list
What branch am I on
pacman-mirrors --api --get-branch
Commands using defaults
Create a mirrorlist
sudo pacman-mirrors --fast-track && sudo pacman -Syy
Limit to 5 mirrors
An optional number can be supplied to limit the number of mirrors in the mirrorlist
sudo pacman-mirrors --fasttrack 5 && sudo pacman -Syy
Mirrors for your country only
Not all countries have mirrors, if geoip returns a country not in the pool all mirrors will be used.
sudo pacman-mirrors --geoip && sudo pacman -Syy
Commands writing temporary mirrorlist
Switch mirrorlist to unstable branch
sudo pacman-mirrors --branch unstable && sudo pacman -Syy
Revert mirrorlist to stable branch
sudo pacman-mirrors -b stable && sudo pacman -Syy
Commands customizing the mirror pool
You can customize the mirror pool to your preference. BUT Don't limit yourself too much as pacman-mirrors only writes up-to-date mirrors to your mirrorlist.
Customize mirror pool by countries
sudo pacman-mirrors --country Germany,France,Austria && sudo pacman -Syy
Customizing mirror pool by interactive selection
Using the --default will list all available mirrors and procotols
sudo pacman-mirrors --interactive --default && sudo pacman -Syy
Use specific protocols (prioritized)
sudo pacman-mirrors --api --protocol https,http && sudo pacman -Syy
Permanently switch to unstable and use German mirrors
sudo pacman-mirrors --country Germany --api --set-branch unstable && sudo pacman -Syy
Permanently switch branch and use German mirrors with https
sudo pacman-mirrors --country Germany --api --set-branch unstable --protocol https && sudo pacman -Syy
Reset
You will come to a point where you want to reset to defaults
Revert all changes
sudo pacman-mirrors --country all --api --protocol all -set-branch stable && sudo pacman -Syy
Overview
Available arguments
All available arguments can be viewed by unfolding this block
~ >>> pacman-mirrors -h Version 4.7.1 ANVENDELSE: pacman-mirrors [-h] [-f [TAL]] [-i [-d]] [-m METODE] [-c LAND [LAND...]] [--geoip] [-l] [-b PAKKEGRUPPE | -G | -S/-B PAKKEGRUPPE] [-a] [-p PRÆFIKS] [-P PROTOKOL [PROTOKOL...]] [-R] [-U URL] [-q] [-t SEKUNDER] [-v] [-n] METODER: -i, --interactive Opret personlig serverliste -f, --fasttrack [TAL] Generate mirrorlist with a number of up-to-date mirrors. Overrides : --geoip, --method -c, --country LAND [LAND ...] En liste over lande, adskilt med komma, hvorfra servere vil blive brugt --geoip Brug geolokation for at bruge server i dit land (om muligt) PAKKEGRUPPE: -b, --branch {stable,testing,unstable} PakkeGruppe -G, --get-branch API: Udskriv PakkeGruppe fra konfigurationsfilen -S, -B, --set-branch {stable,testing,unstable} API: Erstat PakkeGruppe i konfigurationsfilen API: -a, --api [-p PRÆFIKS][-R][-S/-B|-G PAKKEGRUPPE][-P PROTOKOL [PROTOKOL ...]] -p, --prefix PRÆFIKS API: Sæt prefix til : $mnt | /mnt/install -P, --proto, --protocols {all,http,https,ftp,ftps} [{all,http,https,ftp,ftps} ...] API: Erstat protokoller i konfigurationsfilen -R, --re-branch API: Erstat PakkeGruppe i server listen -U, --url URL API: Erstat server url i serverlisten DIVERSE: -d, --default INTERACTIVE: Indlæs standard server information -h, --help -l, --list, --country-list Udskriv alle lande med servere -m, --method {rank,random} Oprettelsesmetode -q, --quiet Stilletilstand - færre informationer -t, --timeout SEKUNDER Maksimal ventetid for serversvar -v, --version Udskriv versionsnummer -n, --no-mirrorlist Bruges for at holde serverlisten uændret
Files used by pacman-mirrors
File: /etc/pacman-mirrors.conf
(sample - can be changee by pacman-mirrors api commands)
To view the content of a default configuration - click the link to the right --->
~ >>> cat /usr/share/pacman-mirrors/mirrors.json ## ## /etc/pacman-mirrors.conf ## ## Branch Pacman should use (stable, testing, unstable) # Branch = stable ## Generation method ## 1) rank - rank mirrors depending on their access time ## 2) random - randomly generate the output mirrorlist # Method = rank ## Define protocols and priority ## separated by comma 'https,http' or 'http,https' ## ATM available protocols are: http, https, ftp ## Not specifying a protocol will ban the protocol from being used ## If a mirror has more than one protocol defined only the first is written to the mirrorlist ## Empty means all in reversed alphabetic order # Protocols = ## When set to False - all certificates are accepted. ## Use only if you fully trust all ssl-enabled mirrors. # SSLVerify = True
To view the content of a default mirror pool - click the link to the right --->
~ >>> cat /usr/share/pacman-mirrors/mirrors.json [ { "country": "Australia", "url": "http://mirror.ventraip.net.au/Manjaro/", "protocols": [ "http" ] }, { "country": "Australia", "url": "http://manjaro.melbourneitmirror.net/", "protocols": [ "http" ] }, { "country": "Australia", "url": "http://manjaro.mirror.serversaustralia.com.au/", "protocols": [ "http" ] }, { "country": "Austria", "url": "http://mirror.inode.at/manjaro/", "protocols": [ "http" ] }, { "country": "Belarus", "url": "http://mirror.datacenter.by/pub/mirrors/manjaro/", "protocols": [ "http" ] }, { "country": "Belgium", "url": "http://ftp.belnet.be/manjaro/", "protocols": [ "http" ] }, { "country": "Belgium", "url": "ftp://ftp.belnet.be/mirrors/manjaro/", "protocols": [ "ftp" ] }, { "country": "Belgium", "url": "https://manjaro.cu.be/", "protocols": [ "https" ] }, { "country": "Bulgaria", "url": "https://mirrors.netix.net/manjaro/", "protocols": [ "https" ] }, { "country": "Bulgaria", "url": "https://manjaro.ipacct.com/manjaro/", "protocols": [ "https" ] }, { "country": "Bulgaria", "url": "http://manjaro.telecoms.bg/", "protocols": [ "http" ] }, { "country": "Canada", "url": "https://osmirror.org/manjaro/", "protocols": [ "https" ] }, { "country": "Chile", "url": "http://manjaro.dcc.uchile.cl/", "protocols": [ "http" ] }, { "country": "China", "url": "https://mirrors.ustc.edu.cn/manjaro/", "protocols": [ "https" ] }, { "country": "China", "url": "http://mirrors.tuna.tsinghua.edu.cn/manjaro/", "protocols": [ "http" ] }, { "country": "China", "url": "https://mirrors.zju.edu.cn/manjaro/", "protocols": [ "https" ] }, { "country": "Colombia", "url": "http://mirror.edatel.net.co/manjaro/", "protocols": [ "http" ] }, { "country": "Costa_Rica", "url": "https://mirrors.ucr.ac.cr/manjaro/", "protocols": [ "https" ] }, { "country": "Czech", "url": "https://mirror.dkm.cz/manjaro/", "protocols": [ "https" ] }, { "country": "Denmark", "url": "https://mirrors.dotsrc.org/manjaro/", "protocols": [ "https" ] }, { "country": "Denmark", "url": "https://www.uex.dk/public/manjaro/", "protocols": [ "https" ] }, { "country": "Ecuador", "url": "https://mirror.cedia.org.ec/manjaro/", "protocols": [ "https" ] }, { "country": "Ecuador", "url": "https://mirror.espoch.edu.ec/manjaro/", "protocols": [ "https" ] }, { "country": "France", "url": "http://mirror.lignux.com/manjaro/", "protocols": [ "http" ] }, { "country": "France", "url": "http://ftp.free.org/mirrors/repo.manjaro.org/repos/", "protocols": [ "ftp", "http" ] }, { "country": "France", "url": "https://fr.mirror.babylon.network/manjaro/", "protocols": [ "https" ] }, { "country": "France", "url": "http://kibo.remi.lu/", "protocols": [ "http" ] }, { "country": "Germany", "url": "http://mirror.ragenetwork.de/manjaro/", "protocols": [ "http" ] }, { "country": "Germany", "url": "https://ftp.halifax.rwth-aachen.de/manjaro/", "protocols": [ "ftp", "https" ] }, { "country": "Germany", "url": "http://ftp.tu-chemnitz.de/pub/linux/manjaro/", "protocols": [ "ftp", "http" ] }, { "country": "Germany", "url": "https://mirror.netzspielplatz.de/manjaro/packages/", "protocols": [ "https" ] }, { "country": "Germany", "url": "https://mirror.netcologne.de/manjaro/", "protocols": [ "https" ] }, { "country": "Germany", "url": "https://repo.rhindon.net/manjaro/", "protocols": [ "https" ] }, { "country": "Germany", "url": "https://repo.stdout.net/manjaro/", "protocols": [ "https" ] }, { "country": "Germany", "url": "https://mirror.alpix.eu/manjaro/", "protocols": [ "https" ] }, { "country": "Germany", "url": "https://manjaro-mirror-a.alpix.eu/", "protocols": [ "https" ] }, { "country": "Germany", "url": "http://ftp.rz.tu-bs.de/pub/mirror/manjaro.org/repos/", "protocols": [ "ftp", "http" ] }, { "country": "Germany", "url": "http://babyname.tips/mirrors/manjaro/", "protocols": [ "http" ] }, { "country": "Hong_Kong", "url": "http://ftp.cuhk.edu.hk/pub/Linux/manjaro/", "protocols": [ "ftp", "http" ] }, { "country": "Hungary", "url": "http://mirror.infotronik.hu/mirrors/pub/manjaro/", "protocols": [ "http" ] }, { "country": "Indonesia", "url": "http://kambing.ui.ac.id/manjaro/", "protocols": [ "http" ] }, { "country": "Indonesia", "url": "http://kartolo.sby.datautama.net.id/manjaro/", "protocols": [ "http" ] }, { "country": "Ireland", "url": "https://ftp.heanet.ie/mirrors/manjaro/", "protocols": [ "ftp", "https" ] }, { "country": "Italy", "url": "https://manjaro.mirror.garr.it/mirrors/manjaro/", "protocols": [ "https" ] }, { "country": "Italy", "url": "https://ba.mirror.garr.it/mirrors/manjaro/", "protocols": [ "https" ] }, { "country": "Italy", "url": "https://ct.mirror.garr.it/mirrors/manjaro/", "protocols": [ "https" ] }, { "country": "Japan", "url": "http://ftp.tsukuba.wide.ad.jp/Linux/manjaro/", "protocols": [ "http" ] }, { "country": "Japan", "url": "http://ftp.riken.jp/Linux/manjaro/", "protocols": [ "ftp", "http" ] }, { "country": "Netherlands", "url": "https://ftp.nluug.nl/pub/os/Linux/distr/manjaro/", "protocols": [ "ftp", "https" ] }, { "country": "Netherlands", "url": "http://ftp.snt.utwente.nl/pub/linux/manjaro/", "protocols": [ "ftp", "http" ] }, { "country": "Netherlands", "url": "https://nl.mirror.babylon.network/manjaro/", "protocols": [ "https" ] }, { "country": "Netherlands", "url": "https://manjaro.mirror.wearetriple.com/", "protocols": [ "https" ] }, { "country": "Netherlands", "url": "https://mirror.koddos.net/manjaro/", "protocols": [ "https" ] }, { "country": "Philippines", "url": "http://mirror.rise.ph/manjaro/", "protocols": [ "http" ] }, { "country": "Portugal", "url": "http://ftp.dei.uc.pt/pub/linux/manjaro/", "protocols": [ "ftp", "http" ] }, { "country": "Portugal", "url": "http://manjaro.barata.pt/", "protocols": [ "http" ] }, { "country": "Romania", "url": "http://mirrors.serverhost.ro/manjaro/packages/", "protocols": [ "http" ] }, { "country": "Romania", "url": "http://ftp.lug.ro/manjaro/", "protocols": [ "ftp", "http" ] }, { "country": "Russia", "url": "https://mirror.yandex.ru/mirrors/manjaro/", "protocols": [ "https" ] }, { "country": "Russia", "url": "http://mirror.truenetwork.ru/manjaro/", "protocols": [ "http" ] }, { "country": "Singapore", "url": "https://download.nus.edu.sg/mirror/manjaro/", "protocols": [ "https" ] }, { "country": "South_Africa", "url": "http://mirror.is.co.za/mirrors/manjaro.org/", "protocols": [ "http" ] }, { "country": "Sweden", "url": "https://ftp.lysator.liu.se/pub/manjaro/", "protocols": [ "ftp", "https" ] }, { "country": "Spain", "url": "http://ftp.caliu.cat/manjaro/", "protocols": [ "http" ] }, { "country": "Sweden", "url": "https://mirror.zetup.net/manjaro/", "protocols": [ "https" ] }, { "country": "Taiwan", "url": "http://free.nchc.org.tw/manjaro/", "protocols": [ "http" ] }, { "country": "Turkey", "url": "http://ftp.linux.org.tr/manjaro/", "protocols": [ "ftp", "http" ] }, { "country": "United_Kingdom", "url": "http://mirror.catn.com/pub/manjaro/", "protocols": [ "http" ] }, { "country": "United_Kingdom", "url": "http://repo.manjaro.org.uk/", "protocols": [ "http" ] }, { "country": "United_Kingdom", "url": "https://www.mirrorservice.org/sites/repo.manjaro.org/repos/", "protocols": [ "https" ] }, { "country": "United_Kingdom", "url": "http://manjaro.mirrors.uk2.net/", "protocols": [ "http" ] }, { "country": "United_States", "url": "http://mirror.dacentec.com/manjaro/", "protocols": [ "http" ] }, { "country": "United_States", "url": "http://mirror.solarvps.com/manjaro/", "protocols": [ "http" ] }, { "country": "United_States", "url": "http://distro.ibiblio.org/manjaro/", "protocols": [ "http" ] }, { "country": "United_States", "url": "https://mirror.clarkson.edu/manjaro/", "protocols": [ "https" ] }, { "country": "United_States", "url": "https://mirrors.ocf.berkeley.edu/manjaro/", "protocols": [ "https" ] }, { "country": "United_States", "url": "https://mirror.math.princeton.edu/pub/manjaro/", "protocols": [ "https" ] } ]
File: /var/lib/pacman-mirrors/status.json
(sample - self updating)
To view the content of a default mirror pool including mirror status - click the link to the right --->
~/Desktop >>> cat /var/lib/pacman-mirrors/status.json [ { "branches": [ 1, 1, 0 ], "country": "Australia", "last_sync": "21:08", "protocols": [ "http" ], "url": "http://mirror.ventraip.net.au/Manjaro/" }, { "branches": [ 1, 1, 1 ], "country": "Australia", "last_sync": "01:08", "protocols": [ "http" ], "url": "http://manjaro.melbourneitmirror.net/" }, { "branches": [ 0, 0, 0 ], "country": "Australia", "last_sync": "194:40", "protocols": [ "http" ], "url": "http://manjaro.mirror.serversaustralia.com.au/" }, { "branches": [ 1, 1, 0 ], "country": "Austria", "last_sync": "06:18", "protocols": [ "http" ], "url": "http://mirror.inode.at/manjaro/" }, { "branches": [ 1, 1, 0 ], "country": "Belarus", "last_sync": "06:18", "protocols": [ "http" ], "url": "http://mirror.datacenter.by/pub/mirrors/manjaro/" }, { "branches": [ -1, -1, -1 ], "country": "Belgium", "last_sync": -1, "protocols": [ "http" ], "url": "http://ftp.belnet.be/manjaro/" }, { "branches": [ 0, 0, 0 ], "country": "Belgium", "last_sync": "138:19", "protocols": [ "ftp" ], "url": "ftp://ftp.belnet.be/mirrors/manjaro/" }, { "branches": [ 1, 1, 0 ], "country": "Belgium", "last_sync": "06:19", "protocols": [ "https" ], "url": "https://manjaro.cu.be/" }, { "branches": [ 1, 1, 1 ], "country": "Bulgaria", "last_sync": "00:49", "protocols": [ "https" ], "url": "https://mirrors.netix.net/manjaro/" }, { "branches": [ 1, 1, 1 ], "country": "Bulgaria", "last_sync": "00:19", "protocols": [ "https" ], "url": "https://manjaro.ipacct.com/manjaro/" }, { "branches": [ 1, 1, 0 ], "country": "Bulgaria", "last_sync": "02:39", "protocols": [ "http" ], "url": "http://manjaro.telecoms.bg/" }, { "branches": [ 1, 1, 1 ], "country": "Canada", "last_sync": "00:59", "protocols": [ "https" ], "url": "https://osmirror.org/manjaro/" }, { "branches": [ 1, 1, 1 ], "country": "Chile", "last_sync": "00:49", "protocols": [ "http" ], "url": "http://manjaro.dcc.uchile.cl/" }, { "branches": [ 1, 1, 0 ], "country": "China", "last_sync": "05:09", "protocols": [ "https" ], "url": "https://mirrors.ustc.edu.cn/manjaro/" }, { "branches": [ 1, 1, 0 ], "country": "China", "last_sync": "05:09", "protocols": [ "http" ], "url": "http://mirrors.tuna.tsinghua.edu.cn/manjaro/" }, { "branches": [ 1, 1, 1 ], "country": "China", "last_sync": "05:09", "protocols": [ "https" ], "url": "https://mirrors.zju.edu.cn/manjaro/" }, { "branches": [ 0, 0, 0 ], "country": "Colombia", "last_sync": "2163:33", "protocols": [ "http" ], "url": "http://mirror.edatel.net.co/manjaro/" }, { "branches": [ 1, 1, 0 ], "country": "Costa_Rica", "last_sync": "03:39", "protocols": [ "https" ], "url": "https://mirrors.ucr.ac.cr/manjaro/" }, { "branches": [ 1, 1, 0 ], "country": "Czech", "last_sync": "06:19", "protocols": [ "https" ], "url": "https://mirror.dkm.cz/manjaro/" }, { "branches": [ 1, 1, 1 ], "country": "Denmark", "last_sync": "00:59", "protocols": [ "https" ], "url": "https://mirrors.dotsrc.org/manjaro/" }, { "branches": [ 1, 1, 1 ], "country": "Denmark", "last_sync": "00:09", "protocols": [ "https" ], "url": "https://www.uex.dk/public/manjaro/" }, { "branches": [ 1, 1, 0 ], "country": "Ecuador", "last_sync": "02:49", "protocols": [ "https" ], "url": "https://mirror.cedia.org.ec/manjaro/" }, { "branches": [ 1, 1, 0 ], "country": "Ecuador", "last_sync": "01:29", "protocols": [ "https" ], "url": "https://mirror.espoch.edu.ec/manjaro/" }, { "branches": [ 1, 1, 0 ], "country": "France", "last_sync": "01:39", "protocols": [ "http" ], "url": "http://mirror.lignux.com/manjaro/" }, { "branches": [ 1, 1, 0 ], "country": "France", "last_sync": "04:59", "protocols": [ "ftp", "http" ], "url": "http://ftp.free.org/mirrors/repo.manjaro.org/repos/" }, { "branches": [ 1, 1, 1 ], "country": "France", "last_sync": "00:49", "protocols": [ "https" ], "url": "https://fr.mirror.babylon.network/manjaro/" }, { "branches": [ 1, 1, 1 ], "country": "France", "last_sync": "00:19", "protocols": [ "http" ], "url": "http://kibo.remi.lu/" }, { "branches": [ 1, 1, 1 ], "country": "Germany", "last_sync": "00:49", "protocols": [ "http" ], "url": "http://mirror.ragenetwork.de/manjaro/" }, { "branches": [ 1, 1, 1 ], "country": "Germany", "last_sync": "00:19", "protocols": [ "ftp", "https" ], "url": "https://ftp.halifax.rwth-aachen.de/manjaro/" }, { "branches": [ 1, 1, 0 ], "country": "Germany", "last_sync": "04:59", "protocols": [ "ftp", "http" ], "url": "http://ftp.tu-chemnitz.de/pub/linux/manjaro/" }, { "branches": [ 1, 1, 1 ], "country": "Germany", "last_sync": "00:09", "protocols": [ "https" ], "url": "https://mirror.netzspielplatz.de/manjaro/packages/" }, { "branches": [ 1, 1, 0 ], "country": "Germany", "last_sync": "05:19", "protocols": [ "https" ], "url": "https://mirror.netcologne.de/manjaro/" }, { "branches": [ 1, 1, 0 ], "country": "Germany", "last_sync": "06:40", "protocols": [ "https" ], "url": "https://repo.rhindon.net/manjaro/" }, { "branches": [ 1, 1, 1 ], "country": "Germany", "last_sync": "00:09", "protocols": [ "https" ], "url": "https://repo.stdout.net/manjaro/" }, { "branches": [ 1, 1, 1 ], "country": "Germany", "last_sync": "00:09", "protocols": [ "https" ], "url": "https://mirror.alpix.eu/manjaro/" }, { "branches": [ 1, 1, 1 ], "country": "Germany", "last_sync": "00:09", "protocols": [ "https" ], "url": "https://manjaro-mirror-a.alpix.eu/" }, { "branches": [ 1, 1, 0 ], "country": "Germany", "last_sync": "06:50", "protocols": [ "ftp", "http" ], "url": "http://ftp.rz.tu-bs.de/pub/mirror/manjaro.org/repos/" }, { "branches": [ 1, 1, 0 ], "country": "Germany", "last_sync": "18:20", "protocols": [ "http" ], "url": "http://babyname.tips/mirrors/manjaro/" }, { "branches": [ 1, 1, 0 ], "country": "Hong_Kong", "last_sync": "09:10", "protocols": [ "ftp", "http" ], "url": "http://ftp.cuhk.edu.hk/pub/Linux/manjaro/" }, { "branches": [ 1, 1, 0 ], "country": "Hungary", "last_sync": "06:20", "protocols": [ "http" ], "url": "http://mirror.infotronik.hu/mirrors/pub/manjaro/" }, { "branches": [ 1, 1, 0 ], "country": "Indonesia", "last_sync": "20:20", "protocols": [ "http" ], "url": "http://kambing.ui.ac.id/manjaro/" }, { "branches": [ 1, 1, 0 ], "country": "Indonesia", "last_sync": "03:00", "protocols": [ "http" ], "url": "http://kartolo.sby.datautama.net.id/manjaro/" }, { "branches": [ 1, 1, 0 ], "country": "Ireland", "last_sync": "05:40", "protocols": [ "ftp", "https" ], "url": "https://ftp.heanet.ie/mirrors/manjaro/" }, { "branches": [ 1, 1, 0 ], "country": "Italy", "last_sync": "10:00", "protocols": [ "https" ], "url": "https://manjaro.mirror.garr.it/mirrors/manjaro/" }, { "branches": [ 1, 1, 0 ], "country": "Italy", "last_sync": "10:00", "protocols": [ "https" ], "url": "https://ba.mirror.garr.it/mirrors/manjaro/" }, { "branches": [ 1, 1, 0 ], "country": "Italy", "last_sync": "10:00", "protocols": [ "https" ], "url": "https://ct.mirror.garr.it/mirrors/manjaro/" }, { "branches": [ 1, 1, 1 ], "country": "Japan", "last_sync": "01:10", "protocols": [ "http" ], "url": "http://ftp.tsukuba.wide.ad.jp/Linux/manjaro/" }, { "branches": [ 1, 1, 0 ], "country": "Japan", "last_sync": "12:20", "protocols": [ "ftp", "http" ], "url": "http://ftp.riken.jp/Linux/manjaro/" }, { "branches": [ 1, 1, 0 ], "country": "Netherlands", "last_sync": "04:40", "protocols": [ "ftp", "https" ], "url": "https://ftp.nluug.nl/pub/os/Linux/distr/manjaro/" }, { "branches": [ 1, 1, 0 ], "country": "Netherlands", "last_sync": "06:20", "protocols": [ "ftp", "http" ], "url": "http://ftp.snt.utwente.nl/pub/linux/manjaro/" }, { "branches": [ 1, 1, 1 ], "country": "Netherlands", "last_sync": "00:50", "protocols": [ "https" ], "url": "https://nl.mirror.babylon.network/manjaro/" }, { "branches": [ 1, 1, 0 ], "country": "Netherlands", "last_sync": "04:50", "protocols": [ "https" ], "url": "https://manjaro.mirror.wearetriple.com/" }, { "branches": [ 1, 1, 0 ], "country": "Netherlands", "last_sync": "04:40", "protocols": [ "https" ], "url": "https://mirror.koddos.net/manjaro/" }, { "branches": [ 1, 1, 0 ], "country": "Philippines", "last_sync": "05:10", "protocols": [ "http" ], "url": "http://mirror.rise.ph/manjaro/" }, { "branches": [ 0, 0, 0 ], "country": "Portugal", "last_sync": "271:12", "protocols": [ "ftp", "http" ], "url": "http://ftp.dei.uc.pt/pub/linux/manjaro/" }, { "branches": [ 1, 1, 1 ], "country": "Portugal", "last_sync": "00:40", "protocols": [ "http" ], "url": "http://manjaro.barata.pt/" }, { "branches": [ 1, 1, 0 ], "country": "Romania", "last_sync": "12:20", "protocols": [ "http" ], "url": "http://mirrors.serverhost.ro/manjaro/packages/" }, { "branches": [ -1, -1, -1 ], "country": "Romania", "last_sync": -1, "protocols": [ "ftp", "http" ], "url": "http://ftp.lug.ro/manjaro/" }, { "branches": [ 1, 1, 0 ], "country": "Russia", "last_sync": "03:00", "protocols": [ "https" ], "url": "https://mirror.yandex.ru/mirrors/manjaro/" }, { "branches": [ 0, 0, 0 ], "country": "Russia", "last_sync": "126:11", "protocols": [ "http" ], "url": "http://mirror.truenetwork.ru/manjaro/" }, { "branches": [ 1, 1, 0 ], "country": "Singapore", "last_sync": "13:10", "protocols": [ "https" ], "url": "https://download.nus.edu.sg/mirror/manjaro/" }, { "branches": [ 1, 1, 0 ], "country": "South_Africa", "last_sync": "03:10", "protocols": [ "http" ], "url": "http://mirror.is.co.za/mirrors/manjaro.org/" }, { "branches": [ 1, 1, 1 ], "country": "Sweden", "last_sync": "00:40", "protocols": [ "ftp", "https" ], "url": "https://ftp.lysator.liu.se/pub/manjaro/" }, { "branches": [ 1, 1, 0 ], "country": "Spain", "last_sync": "04:00", "protocols": [ "http" ], "url": "http://ftp.caliu.cat/manjaro/" }, { "branches": [ 1, 1, 0 ], "country": "Sweden", "last_sync": "02:40", "protocols": [ "https" ], "url": "https://mirror.zetup.net/manjaro/" }, { "branches": [ 1, 1, 0 ], "country": "Taiwan", "last_sync": "04:00", "protocols": [ "http" ], "url": "http://free.nchc.org.tw/manjaro/" }, { "branches": [ 1, 1, 0 ], "country": "Turkey", "last_sync": "06:20", "protocols": [ "ftp", "http" ], "url": "http://ftp.linux.org.tr/manjaro/" }, { "branches": [ 1, 1, 1 ], "country": "United_Kingdom", "last_sync": "01:10", "protocols": [ "http" ], "url": "http://mirror.catn.com/pub/manjaro/" }, { "branches": [ 1, 1, 1 ], "country": "United_Kingdom", "last_sync": "00:40", "protocols": [ "http" ], "url": "http://repo.manjaro.org.uk/" }, { "branches": [ 1, 1, 0 ], "country": "United_Kingdom", "last_sync": "05:20", "protocols": [ "https" ], "url": "https://www.mirrorservice.org/sites/repo.manjaro.org/repos/" }, { "branches": [ 1, 1, 1 ], "country": "United_Kingdom", "last_sync": "00:50", "protocols": [ "http" ], "url": "http://manjaro.mirrors.uk2.net/" }, { "branches": [ 1, 1, 1 ], "country": "United_States", "last_sync": "00:30", "protocols": [ "http" ], "url": "http://mirror.dacentec.com/manjaro/" }, { "branches": [ 1, 1, 0 ], "country": "United_States", "last_sync": "06:21", "protocols": [ "http" ], "url": "http://mirror.solarvps.com/manjaro/" }, { "branches": [ 1, 1, 1 ], "country": "United_States", "last_sync": "00:11", "protocols": [ "http" ], "url": "http://distro.ibiblio.org/manjaro/" }, { "branches": [ 1, 1, 0 ], "country": "United_States", "last_sync": "01:51", "protocols": [ "https" ], "url": "https://mirror.clarkson.edu/manjaro/" }, { "branches": [ 1, 1, 0 ], "country": "United_States", "last_sync": "01:51", "protocols": [ "https" ], "url": "https://mirrors.ocf.berkeley.edu/manjaro/" }, { "branches": [ 1, 1, 1 ], "country": "United_States", "last_sync": "00:41", "protocols": [ "https" ], "url": "https://mirror.math.princeton.edu/pub/manjaro/" } ] <pre> </div> </div> ====File: <code>/etc/pacman-mirrors.conf</code> <small>(sample of default config)</small>==== <div class="toccolours mw-collapsible mw-collapsed"> To view the content of a default pacman-mirrors.conf - click the link to the right ---> <div class="mw-collapsible-content"> <pre> ~ >>> cat /etc/pacman-mirrors.conf ## ## /etc/pacman-mirrors.conf ## ## Branch Pacman should use (stable, testing, unstable) # Branch = stable ## Generation method ## 1) rank - rank mirrors depending on their access time ## 2) random - randomly generate the output mirrorlist # Method = rank ## Define protocols and priority ## separated by comma 'https,http' or 'http,https' ## ATM available protocols are: http, https, ftp ## Not specifying a protocol will ban the protocol from being used ## If a mirror has more than one protocol defined only the first is written to the mirrorlist ## Empty means all in reversed alphabetic order # Protocols = ## Get a list of all available counties with 'pacman-mirrors -l' ## Value can be 'Custom' or nothing which means all # OnlyCountry = ## When set to False - all certificates are accepted. ## Use only if you fully trust all ssl-enabled mirrors. # SSLVerify = True
Sample command to customize mirror pool
To view the content of the sample command - click the link to the right --->
~ >>> sudo pacman-mirrors -cDenmark && sudo pacman -Syy .: INFO Downloading mirrors from repo.manjaro.org .: INFO User generated mirror list -------------------------- .: INFO Custom mirror file saved: /var/lib/pacman-mirrors/custom-mirrors.json .: INFO Using custom mirror file .: INFO Querying mirrors - This may take some time 0.091 Denmark : https://mirrors.dotsrc.org/manjaro/ 0.075 Denmark : https://www.uex.dk/public/manjaro/ .: INFO Writing mirror list Denmark : https://www.uex.dk/public/manjaro/unstable/$repo/$arch Denmark : https://mirrors.dotsrc.org/manjaro/unstable/$repo/$arch .: INFO Mirror list generated and saved to: /etc/pacman.d/mirrorlist .: INFO To remove custom config run 'sudo pacman-mirrors -c all' :: Synchronizing package databases... core 137,4 KiB 19,2M/s 00:00 [####################################################################] 100% extra 1763,6 KiB 11,5M/s 00:00 [####################################################################] 100% community 4,4 MiB 11,2M/s 00:00 [####################################################################] 100% multilib 179,0 KiB 13,4M/s 00:00 [####################################################################] 100%
File: /etc/pacman.d/mirrorlist
(sample)
To view the content of the sample mirrorlist - click the link to the right --->
~ >>> cat /etc/pacman.d/mirrorlist ## ## Manjaro Linux custom mirrorlist ## Generated on 2017-11-08 10:59 ## ## Please use 'pacman-mirrors -id' to reset custom mirrorlist ## Please use 'pacman-mirrors -c all' to reset custom mirrorlist ## To remove custom config run 'pacman-mirrors -c all' ## ## Country : Denmark Server = https://www.uex.dk/public/manjaro/unstable/$repo/$arch ## Country : Denmark Server = https://mirrors.dotsrc.org/manjaro/unstable/$repo/$arch
File: /var/lib/pacman-mirrors/custom-mirrors.json
(sample - status is self updating)
To view the content of a custom mirror pool - click the link to the right --->
~ >>> cat /var/lib/pacman-mirrors/custom-mirrors.json [ { "branches": [ 1, 1, 1 ], "country": "Denmark", "last_sync": "00:59", "protocols": [ "https" ], "resp_time": "00.00", "url": "https://mirrors.dotsrc.org/manjaro/" }, { "branches": [ 1, 1, 1 ], "country": "Denmark", "last_sync": "00:09", "protocols": [ "https" ], "resp_time": "00.00", "url": "https://www.uex.dk/public/manjaro/" } ]
Defaults
PacmanMirrors has some reasonable defaults
- Ranking mirrors with the fastest mirrors on top - Using stable branch - Using all mirrors
The -f or --fasttrack argument uses mirrors which are up-to-date for your branch. Optionally you can supply a number e.g. 10
Country
Instead of pacman-mirrors probing all mirrors in all countries it is possible to supply a list of countries from which to use the mirrors.
$ sudo pacman-mirrors --country Germany,France,Austria && sudo pacman -Syy
If a supplied country does not offer a mirrorserver the app quits with an error explaining why.
$ sudo pacman-mirrors --country Antarctica && sudo pacman -Syy .: Info Downloading mirrors from repo.manjaro.org .: Warning Option '-c/--country' : unknown country: 'Antarctica' .: Info Available countries are: Australia, Austria, Belarus, Belgium, Brasil, Bulgaria, Canada, Chile, China, Colombia, Costa_Rica, Czech, Denmark, Ecuador, France, Germany, Greece, Hungary, Indonesia, Ireland, Italy, Japan, Netherlands, Philippines, Poland, Portugal, Romania, Russia, Singapore, South_Africa, Sweden, Spain, Taiwan, Turkey, United_Kingdom, United_States, Vietnam
Another option for the mirrors closest to your location is --geoip
$ sudo pacman-mirrors --geoip --quiet && sudo pacman -Syy :: Querying servers, this may take some time => Testing mirrors in France :: Writing mirror list :: Mirrorlist generated and saved to: /etc/pacman.d/mirrorlist
Branch
Situations could exist, in which you want a not yet released to stable software, which contains a desired improvement or bugfix. For such situations it is possible to make a temporary switch to testing or unstable branch
Switch branch and syncronize
$ sudo pacman-mirrors --branch testing && sudo pacman -Syy
Install whatever software needed from that branch.
$ sudo pacman -S some-software-package-you-need
After installation switch back and syncronize
$ sudo pacman-mirrors --branch stable && sudo pacman -Syy
In such a situation, where you have pulled software from another branch, you must be prepared for messages from pacman or pamac about newer packages on the system. These messages can safely be ignored and they dissappear when the installed package(s) reaches stable branch
Customizing the mirror pool
If you, for various reasons, have a preference for specific mirrors, it is possible to create a personal mirror pool. This is done by supplying --interactive [--default] or --country argument.
A more in-depth article is Create your own Custom Mirrorlist
A word of caution
Don't limit yourself too much. Pacman-mirrors will only use up-to-date mirrors in the final mirrorlist.
Customizing pool
The customized pool is saved as /var/lib/pacman-mirrors/custom-mirrors.json
First option is using --interactive. It uses your current mirror pool(wether default or custom)
$ sudo pacman-mirrors -i && sudo pacman -Syy
Second option is using --interactive --default. This force the use of the official mirror pool
$ sudo pacman-mirrors -id && sudo pacman -Syy
Third option is supplying a list of countries with --country
$ sudo pacman-mirrors -cGermany,France,Austria && sudo pacman -Syy
Using Option 1 and 2, pacman-mirrors will process the available mirrors and present you with a list in which you will select your desired mirrors. Option 3 creates a pool from the supplied countries. In either case the pool is saved and used to generate a mirrorlist.
Syncronization status
Pacman-mirrors downloads pool status for the default mirror pool. When you want to regenerate your mirrorlist, your custom pool is updated with the info from the downloaded pool status.
This ensures you will always use up-to-date mirrors.
Resetting custom pool
First option to reset is to default mirror pool
$ sudo pacman-mirrors --country all && sudo pacman -Syy
Second option to is to use --default with --interactive
$ sudo pacman-mirrors --interactive --default && sudo pacman -Syy
- You will be presented with a list with all and every mirror and you can pick your selection.
Third option is to supply a list of countries
$ sudo pacman-mirrors --country Germany,France,Austria
- If you supply the same preferred countries on every reset you will get your mirror pool updated with added or removed mirrors.
FAQ
pacman-mirrors.conf
If pacman-mirrors is updated and has a new pacman-mirrors.conf, it will inform you that a new conf is saved as pacman-mirrors.conf.pacnew.
You must manually merge changes/additions into your pacman-mirrors.conf.