Manjaro Difference between revisions of "Pacman-mirrors"

Difference between revisions of "Pacman-mirrors"

From Manjaro
imported>Fhdk
m (fixed link to documentation page on gitlab)
 
(155 intermediate revisions by 11 users not shown)
Line 1: Line 1:
<languages/>
__TOC__
<translate>
== Pacman-Mirrors == <!--T:1-->


== Manjaro Pacman-Mirrors ==
<!--T:2-->
Pacman-mirrors is a Manjaro specific utility for generating and maintaining the system mirrorlist. This article covers current version 4.x.
Pacman-mirrors uses the information available on the [http://repo.manjaro.org Mirrorservice]


A utility for generating and maintaining the systems mirrorlist. This article covers current version 4.2.
=== Purpose === <!--T:3-->
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.


=== Purpose ===
=== Use === <!--T:4-->
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.
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 some generic websites. The sites are chosen due to their general availability. pacman-mirrors will selfupdate by downloading mirrors.json and status.json from repo.manjaro.org.


=== Use ===
<!--T:5-->
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 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.
# repo.manjaro.org
# wikipedia.org
# bitbucket.org


$ sudo pacman-mirrors
<!--T:6-->
Should you get certificates error and pacman-mirrors throws a message of missing internet connection - you must verify your computers firmware date and time as this is probably completely off either because of configuration or a malfunctioning CMOS battery.


Exactly how the app generates the mirrorlist is controlled by supplying arguments on the commandline.  
<!--T:7-->
The app is run by an ordinary user with superuser rights from the console and when no arguments are given it will display pacman-mirrors version followed by status of the mirrors currently listed in your mirrorlist.


=== '''IMPORTANT''' ===
<!--T:8-->
'''It cannot be stressed enough, that every run of pacman-mirrors requires you to syncronize your database'''
{{UserCmd|command=sudo pacman-mirrors}}


$ sudo pacman -Syy
<!--T:9-->
Exactly how the app generates the mirrorlist is controlled by supplying arguments on the commandline.


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.
=== '''IMPORTANT''' === <!--T:10-->
==== When to use a forced metadata refresh ====
When pacman requests the metadata from the mirror then - to avoid unnecessary download - pacman asks for '''Last-Modified''' header for the metadata on the server.


=== Available arguments ===
<!--T:101-->
Only in the event that '''Last-Modifed''' on the mirror is newer - pacman requests the complete file.
 
<!--T:102-->
This can present an awkward scenario where the local metadata is newer than the mirror but it contains older content.
 
<!--T:103-->
This inconsistency may then generate '''HTTP 404 Not Found''' errors because the local metadata could contain references to package versions which no longer exist.
 
<!--T:104-->
The doubled '''yy''' is to mitigate such possible issues - especially when you switch branch or mirror.
 
<!--T:105-->
It is bad practise to indiscrimately use '''-Syyu''' for update scenarios, but - pamac mirrorlist timer rewrites the mirrorlist on a weekly or bi-weekly basis - thus increasing the possibility of having inconsistent metadata - in which case the doubled '''yy''' makes sense - which is also why it is used in the pacman-mirrors man page.
 
<!--T:106-->
To further the inconsistency - pamac uses copies of the pacman database - which has caused confusion before - pamac and pacman being in disagreement over available updates.
 
<!--T:11-->
The commands presented in this document uses the syntax '''-Syu''' thus leaving it to the user to add the extra '''-Syyu''' only in case where it is strictly necessary.
{{Tip|Every run of pacman-mirrors requires you to syncronize your database and update your system.}}
{{UserCmd|command=sudo pacman -Syu}}
 
<!--T:12-->
If you fail to do so, the issue/s which had you make change might not be solved. Furthermore you might run into [[System_Maintenance|''partial-updated'']] scenario which can cause havoc in your system. For more detailed information on how pacman works you can read up on the [https://wiki.archlinux.org/index.php/System_maintenance Archlinux Wiki]
 
==TL:DR - Samples please== <!--T:13-->
All commands uses the available mirror pool.<br />
The mirror pool can be the default full mirror pool or a customized mirror pool.<br />
Commands for info do not require superuser - changing systemfiles do.<br/>
All samples are using the long name version of the argument.
For short versions have a look at the [https://gitlab.manjaro.org/applications/pacman-mirrors/-/blob/master/data/docs/index.md| man page] or the usage command
 
===Commands giving information=== <!--T:14-->
 
====Man page==== <!--T:15-->
{{UserCmd|command=man pacman-mirrors}}
 
====Help on usage==== <!--T:16-->
{{UserCmd|command=pacman-mirrors --help}}
 
====Version==== <!--T:17-->
{{UserCmd|command=pacman-mirrors --version}}
 
====Mirror status==== <!--T:18-->
{{UserCmd|command=pacman-mirrors --status}}
 
====List available countries==== <!--T:19-->
In default mirror pool
{{UserCmd|command=pacman-mirrors --country-list}}
 
<!--T:20-->
In custom mirror pool
{{UserCmd|command=pacman-mirrors --country-config}}
 
====What branch am I on==== <!--T:21-->
{{UserCmd|command=pacman-mirrors --get-branch}}
 
===Commands using defaults=== <!--T:22-->
 
====Update mirrorlist with the fastest mirrors==== <!--T:23-->
{{UserCmd|command=sudo pacman-mirrors --fasttrack && sudo pacman -Syu}}
 
====Limit to 5 mirrors==== <!--T:24-->
An optional number can be supplied to limit the number of mirrors in the mirrorlist
{{UserCmd|command=sudo pacman-mirrors --fasttrack 5 && sudo pacman -Syu}}
 
====Mirrors for your country only==== <!--T:25-->
Not all countries have mirrors, if geoip returns a country not in the pool all mirrors will be used.
{{UserCmd|command=sudo pacman-mirrors --geoip && sudo pacman -Syu}}
 
===Commands customizing the mirror pool=== <!--T:26-->
 
<!--T:27-->
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 continent==== <!--T:28-->
Create a custom mirror pool using mirrors from the continent determined by querying a geolocation service
{{UserCmd|command=sudo pacman-mirrors --continent && sudo pacman -Syu}}
 
====Customize mirror pool by countries==== <!--T:29-->
Create a custom mirror pool using mirrors from Germany, France and Austria
{{UserCmd|command=sudo pacman-mirrors --country Germany,France,Austria && sudo pacman -Syu}}
 
====Customize mirror pool by interactive selection==== <!--T:30-->
Create a custom mirror pool using the '''--default''' mirror pool '''--interactive''' will list all available mirrors and procotols in a gui windows allowing to sort the columns and interactively select according to your preferences.
{{UserCmd|command=sudo pacman-mirrors --interactive --default && sudo pacman -Syu}}
 
====Use specific protocols (prioritized)==== <!--T:31-->
Rank the current mirror pool using only https and http protocol
{{UserCmd|command=sudo pacman-mirrors --api --protocol https,http && sudo pacman -Syu}}
 
====Switch branch to unstable and use German mirrors==== <!--T:32-->
Change the system branch to unstable and create a custom mirror pool using mirrors from Germany
{{UserCmd|command=sudo pacman-mirrors --country Germany --api --set-branch unstable && sudo pacman -Syu}}
 
==== Switch branch and use German mirrors with https==== <!--T:33-->
Change the system branch to unstable, set configuration to use https only and create a custom mirror pool using mirrors from Germany
{{UserCmd|command=sudo pacman-mirrors --country Germany --api --set-branch unstable --protocol https && sudo pacman -Syu}}
 
===Reset=== <!--T:34-->
You will come to a point where you want to reset to defaults
 
<!--T:35-->
{{UserCmd|command=sudo pacman-mirrors --country all --api --protocols all --set-branch stable && sudo pacman -Syu}}
 
==Overview== <!--T:36-->
 
=== Available arguments === <!--T:37-->
 
<!--T:38-->
<div class="toccolours mw-collapsible mw-collapsed">
<div class="toccolours mw-collapsible mw-collapsed">
All available arguments can be viewed by unfolding this block
All available arguments can be viewed by unfolding this block
<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
<pre>
<pre>
➜  ~ pacman-mirrors -h     
Version 4.16.4
USAGE:
pacman-mirrors [-h] [-f [NUMBER]] [-i [-d]] [-m METHOD] [--status]
[-c COUNTRY [COUNTRY...] | [--geoip] | [--continent]]
[-l] [-lc] [-q] [-t SECONDS] [-v] [-n]
[--api] [-S/-B BRANCH] [-p PREFIX]
[-P PROTO [PROTO...]] [-R] [-U URL]


optional arguments:
<!--T:39-->
  -h, --help            show this help message and exit
 
METHODS:
METHODS:
   -g, --generate        Generate mirrorlist with defaults
   -i, --interactive    Generate custom mirrorlist
   -f, --fasttrack NUMBER
   -f, --fasttrack [NUMBER]
                         Generate mirrorlist with a number of up-to-date
                         Generate mirrorlist with a number of up-to-date
                         mirrors. Ignores: --country --interactive --method
                         mirrors. Overrides : --geoip, --method
                        --geoip
  -i, --interactive    Generate custom mirrorlist
  -d, --default        Interactive: Load default mirror file
  -m, --method {rank,random}
                        Generation method
 
COUNTRY:
   -c, --country COUNTRY [COUNTRY ...]
   -c, --country COUNTRY [COUNTRY ...]
                         Comma separated list of countries, from which mirrors
                         Comma separated list of countries, from which mirrors
                         will be used
                         will be used
   --geoip              Get current country using geolocation
   --geoip              Get current country using geolocation
   -l, --country-list, --list
   --continent          Use continent from geolocation
                        List all available countries


BRANCH:
<!--T:40-->
   -b, --branch {stable,testing,unstable}
API:
                        Branch name
   -a, --api            [-p PREFIX][-R][-S/-B|-G BRANCH][-P PROTO [PROTO ...]]
  -G, --get-branch      API: Return branch from configuration
   -S, -B, --set-branch {stable,stable-staging,testing,unstable}
   -S, --set-branch {stable,testing,unstable}
                         API: Replace branch in configuration
                         API: Replace branch in configuration
 
   -p, --prefix PREFIX  API: Set prefix to : $mnt | /mnt/install
API:
  -a, --api            [-p PREFIX][-R][-S|-G BRANCH][-P PROTO [PROTO ...]]
   -p, --prefix PREFIX  API: Set prefix to: $mnt | /mnt/install
   -P, --proto, --protocols {all,http,https,ftp,ftps} [{all,http,https,ftp,ftps} ...]
   -P, --proto, --protocols {all,http,https,ftp,ftps} [{all,http,https,ftp,ftps} ...]
                         API: Replace protocols in configuration
                         API: Replace protocols in configuration
Line 64: Line 183:
   -U, --url URL        API: Replace mirror url in mirrorlist
   -U, --url URL        API: Replace mirror url in mirrorlist


<!--T:41-->
MISC:
MISC:
  -G, --get-branch      Return branch from configuration
  -d, --default        INTERACTIVE: Load default mirror file
  -h, --help
  -l, --list, --country-list
                        List all available countries
  -lc, --country-config
                        lists configured mirror countries
  -m, --method {rank,random}
                        Generation method
  -n, --no-mirrorlist  Use to skip generation of mirrorlist
   -q, --quiet          Quiet mode - less verbose output
   -q, --quiet          Quiet mode - less verbose output
  -s, --no-status      Ignore mirror branch status
   -t, --timeout SECONDS
   -t, --timeout SECONDS
                         Maximum waiting time for server response
                         Maximum waiting time for server response
   -v, --version        Print the pacman-mirrors version
   -v, --version        Print the pacman-mirrors version
   -n, --no-mirrorlist  Use to skip generation of mirrorlist
   --no-color
   -y, --sync            Syncronize pacman databases
  --interval INTERVAL  Max. number of hours since last sync
  -g                    Create mirror list from active pool.
  --status              Status for the current mirror list.
  --use-async          Experimental async mirror test.
</pre>
</div>
</div>
 
===Files used by pacman-mirrors=== <!--T:42-->
 
====File: <code>/etc/pacman-mirrors.conf</code> <small>(sample - can be changed by pacman-mirrors api commands)</small>==== <!--T:43-->
 
<!--T:44-->
<div class="toccolours mw-collapsible mw-collapsed">
To view the content of a default configuration - click the link to the right --->
<div class="mw-collapsible-content">
<pre>
~ >>> cat /etc/pacman-mirrors.conf                                                                                                                                   
    ##
    ## /etc/pacman-mirrors.conf
    ##
 
    <!--T:45-->
## Branch Pacman should use (stable, testing, unstable)
    # Branch = stable
 
    <!--T:46-->
## Generation method
    ## 1) rank  - rank mirrors depending on their access time
    ## 2) random - randomly generate the output mirrorlist
    # Method = rank
 
    <!--T:47-->
## 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 =
 
    <!--T:48-->
## When set to False - all certificates are accepted.
    ## Use only if you fully trust all ssl-enabled mirrors.
    # SSLVerify = True
</pre>
</div>
</div>
 
====File: <code>/usr/share/pacman-mirrors/mirrors.json</code> <small>(sample - self updating)</small>==== <!--T:49-->
 
<!--T:50-->
<div class="toccolours mw-collapsible mw-collapsed">
To view the content of a default mirror pool - click the link to the right --->
<div class="mw-collapsible-content">
<pre>
~ >>> 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"
    ]
  }
]
</pre>
</div>
</div>
 
====File: <code>/var/lib/pacman-mirrors/status.json</code> <small>(sample - self updating)</small>==== <!--T:51-->
<div class="toccolours mw-collapsible mw-collapsed">
To view the content of a default mirror pool including mirror status - click the link to the right --->
<div class="mw-collapsible-content">
<pre>
~/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>==== <!--T:52-->
 
<!--T:53-->
<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
##
 
<!--T:54-->
## Branch Pacman should use (stable, testing, unstable)
# Branch = stable
 
<!--T:55-->
## Generation method
## 1) rank  - rank mirrors depending on their access time
## 2) random - randomly generate the output mirrorlist
# Method = rank
 
<!--T:56-->
## 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 =
 
<!--T:57-->
## Get a list of all available counties with 'pacman-mirrors -l'
## Value can be 'Custom' or nothing which means all
# OnlyCountry =
 
<!--T:58-->
## When set to False - all certificates are accepted.
## Use only if you fully trust all ssl-enabled mirrors.
# SSLVerify = True
</pre>
</div>
</div>
 
====Sample command to customize mirror pool==== <!--T:59-->
 
<!--T:60-->
<div class="toccolours mw-collapsible mw-collapsed">
To view the content of the sample command - click the link to the right --->
<div class="mw-collapsible-content">
<pre>
~ >>> sudo pacman-mirrors --country Denmark && sudo pacman -Syyu                                                                                                       
.: INFO Downloading mirrors from repo.manjaro.org
 
<!--T:61-->
.: 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'
:: Synkroniserer pakkedatabaser...
core                          143,1 KiB  10,7M/s 00:00 [##############################] 100%
extra                        1719,8 KiB  10,3M/s 00:00 [##############################] 100%
community                      4,5 MiB  11,0M/s 00:00 [##############################] 100%
multilib                      177,7 KiB  13,3M/s 00:00 [##############################] 100%
:: Starter fuld systemopgradering...
der er intet at udføre
</pre>
</div>
</div>
 
====File: <code>/etc/pacman.d/mirrorlist</code> <small>(sample)</small>==== <!--T:62-->
 
<!--T:63-->
<div class="toccolours mw-collapsible mw-collapsed">
To view the content of the sample mirrorlist - click the link to the right --->
<div class="mw-collapsible-content">
<pre>
~ >>> 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'
##
 
<!--T:64-->
## Country : Denmark
Server = https://www.uex.dk/public/manjaro/unstable/$repo/$arch
 
<!--T:65-->
## Country : Denmark
Server = https://mirrors.dotsrc.org/manjaro/unstable/$repo/$arch
</pre>
</div>
</div>
 
====File: <code>/var/lib/pacman-mirrors/custom-mirrors.json</code> <small>(sample)</small>==== <!--T:66-->


<!--T:67-->
<div class="toccolours mw-collapsible mw-collapsed">
To view the content of a custom mirror pool - click the link to the right --->
<div class="mw-collapsible-content">
<pre>
~ >>> 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/"
  }
]
</pre>
</pre>
</div>
</div>
</div>
</div>


=== Defaults ===
=== Defaults === <!--T:68-->
PacmanMirrors has some reasonable defaults
PacmanMirrors has some reasonable defaults


  - Ranking mirrors with the fastest mirrors on top
  <!--T:69-->
- Ranking mirrors with the fastest mirrors on top
  - Using stable branch
  - Using stable branch
  - Using all mirrors
  - Using all mirrors


The '''-f 0''' or '''--fasttrack 0''' argument uses mirrors which are up-to-date for your branch. To limit the number of mirrors you can change the number to eg. 10
<!--T:70-->
The '''-f''' or '''--fasttrack''' argument uses mirrors which are up-to-date for your branch. Optionally you can supply a number e.g. 10
 
=== Continent === <!--T:71-->
The --continent argument is using a geolocation function to create a custom mirror pool from countries within the geolocated continent.


=== Country ===
=== Country === <!--T:72-->
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.
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. This creates a custom mirror pool. The countries is an example - check the country list if in doubt.


  $ sudo pacman-mirrors --country Germany,France,Austria && sudo pacman -Syy
  <!--T:73-->
{{UserCmd|command=sudo pacman-mirrors --country Germany,France,Austria && sudo pacman -Syu}}


<!--T:74-->
If a supplied country does not offer a mirrorserver the app quits with an error explaining why.
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
  <!--T:75-->
{{UserCmd|command=sudo pacman-mirrors --country Antarctica && sudo pacman -Syu}}
  .: Info Downloading mirrors from repo.manjaro.org
  .: Info Downloading mirrors from repo.manjaro.org
  .: Warning Option '-c/--country' : unknown country: 'Antarctica'
  .: Warning Option '-c/--country' : unknown country: 'Antarctica'
Line 103: Line 2,025:




<!--T:76-->
Another option for the mirrors closest to your location is '''--geoip'''
Another option for the mirrors closest to your location is '''--geoip'''
<pre>$ sudo pacman-mirrors --geoip --quiet && sudo pacman -Syy
<pre>$ sudo pacman-mirrors --geoip --quiet && sudo pacman -Syu
:: Querying servers, this may take some time
:: Querying servers, this may take some time
=> Testing mirrors in France
=> Testing mirrors in France
Line 111: Line 2,034:
</pre>
</pre>


=== Branch ===
===Customizing the mirror pool=== <!--T:77-->
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
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]'', ''--continent-- or ''--country'' argument.
 
$ sudo pacman-mirrors --branch testing & sudo pacman -Syy
 
Syncronize your pacman database with the new mirror/branch combination and install whatever software needed from that branch.
 
$ sudo pacman -S some-software-package-you-need
 
After installation switch back
 
$ sudo pacman-mirrors --branch stable  & sudo pacman -Syy
 
Syncronize
 
$ 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
 
===Custom mirrorlist===
If you, for various reasons, have a preference for specific mirrors, it is possible to create a personal mirrorlist. This is done by supplying ''interactive'' argument.
 
A more in-depth article is [[Create your own Custom Mirrorlist]]
 
$ sudo pacman-mirrors --interactive & sudo pacman -Syy
 
Pacman-mirrors will process the available mirrors and present you with a list in which you will select your desired mirrors. The resulting list will be saved to the system and used each time you run pacman-mirrors.
 
When you want to reset the list to default run
 
$ sudo pacman-mirrors --country all & sudo pacman -Syy
 
Another way of resetting the custom mirror file 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.


==FAQ==
====A word of caution==== <!--T:78-->
Don't limit yourself too much. Pacman-mirrors will only use up-to-date mirrors in the final mirrorlist. Also observe this: Your custom mirror pool will not be changed - even if a mirror leaves service or becomes unmaintained. It is your reponsibility to maintain your custom mirror pool in the event the official mirrorpool is changed.


===fasttrack===
===Customizing pool=== <!--T:79-->
So, ''pacman-mirrors -f 2'' takes the same time to create /etc/pacman.d/mirrorlist as ''pacman-mirrors -f 20''?
The customized pool is saved as <code>/var/lib/pacman-mirrors/custom-mirrors.json</code>


'''No'''. ''pacman-mirrors -f 2'' will approx. be '''10x''' faster than ''pacman-mirrors -f 20'' since only 2 mirrors are probed versus 20 mirrors.
<!--T:80-->
'''First option''' is using ''--interactive''. It uses your current mirror pool(whether default or custom)
{{UserCmd|command=sudo pacman-mirrors --interactive && sudo pacman -Syu}}


So, ''pacman-mirrors -f [n]'' always ranks '''ALL''' mirrors by response time (the same as ''-g'' does) and additionally takes up-to-date mirrors and writes only '''n''' mirrors to the mirrorlist?
<!--T:81-->
'''Second option''' is using ''--interactive --default''. This force the use of the official mirror pool
{{UserCmd|command=sudo pacman-mirrors --interactive --default && sudo pacman -Syu}}


'''No'''. ''pacman-mirrors -f [n]'' ranks on a sorted list with known up-to-date mirrors. Thus it is only the first '''n''' mirrors from this list which are actually probed. If you have a list of 30 mirrors which are up-to-date and use ''-f 5'' only the ''top 5 mirrors'' are probed and then sorted after response time.
<!--T:82-->
'''Third option''' is supplying a list of countries with ''--country''. The countries is an example - check the country list if in doubt.
{{UserCmd|command=sudo pacman-mirrors --country Germany,France,Austria && sudo pacman -Syu}}


===pacman-mirrors.conf===
<!--T:83-->
'''Fourth option''' is ''--continent''. The countries used is determined by the continent they are assigned to and can optionally be combined with '''--interactive'''.
{{UserCmd|command=sudo pacman-mirrors --continent [--interactive]}}


If pacman-mirrors is updated and has a new pacman-mirrors.conf, it will inform you.
<!--T:84-->
Using ''--interactive'' option, pacman-mirrors will process the available mirrors and present you with a list in which you will select your desired mirrors. In any case the pool is saved and used to generate a mirrorlist.


You must manually merge changes/additions into your pacman-mirrors.conf.
====Syncronization status==== <!--T:85-->
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.


==TL:DR==
<!--T:86-->
This ensures you will '''always''' use up-to-date mirrors.


====Default mirrorlist====
===Resetting and changing the custom mirror pool=== <!--T:87-->
'''First option''' to reset is to default mirror pool


  sudo pacman-mirrors -g & sudo pacman -Syy
  <!--T:88-->
{{UserCmd|command=sudo pacman-mirrors --country all && sudo pacman -Syu}}


====Up-to-date mirrorlist====
<!--T:89-->
'''Second option''' to is to use ''--default'' with ''--interactive'' and creating a new custom mirror pool


  sudo pacman-mirrors -f 0 & sudo pacman -Syy
  <!--T:90-->
{{UserCmd|command=sudo pacman-mirrors --interactive --default && sudo pacman -Syu}}
* You will be presented with a list with all and every mirror and you can pick your selection.


The number can be changed to limit the number of mirrors in the mirrorlist
<!--T:91-->
'''Third option''' is to supply a list of countries and use those for a custom mirror pool.
The countries is an example - check the country list if in doubt.
{{UserCmd|command=sudo pacman-mirrors --country Germany,France,Austria && sudo pacman -Syu}}
* If you supply the same preferred countries on every reset you will get your mirror pool updated with added or removed mirrors.


====List available countries====
<!--T:92-->
sudo pacman-mirrors -l & sudo pacman -Syy
The '''--continent''' option has a behavior similar to '''--country'''


====Mirrors for your country====
=== Apply pacman-mirrors defaults === <!--T:93-->
sudo pacman-mirrors --geoip & sudo pacman -Syy
{{UserCmd|command=sudo pacman-mirrors --country all --api --protocol all -set-branch stable && sudo pacman -Syu}}


====Mirrors for preferred countries====
<!--T:94-->
sudo pacman-mirrors -c Germany,France,Austria & sudo pacman -Syy
The system will throw messages about newer packages on the system. These messages can safely be ignored and they dissappear when the installed package(s) equals the system branch.


====Up-to-date mirrors on CURRENT branch====
== manpage == <!--T:95-->
sudo pacman-mirrors -f 5 & sudo pacman -Syy
* The manpage is in section 8 (System administration commands)
* [https://gitlab.manjaro.org/applications/pacman-mirrors/tree/master/docs man page]


====Temporarily switch to unstable branch====
sudo pacman-mirrors -b unstable & sudo pacman -Syy


====Switch back to stable branch====
==FAQ== <!--T:96-->
sudo pacman-mirrors -b stable & sudo pacman -Syy


====Having fun handpicking mirrors and protocols====
===pacman-mirrors.conf=== <!--T:97-->
sudo pacman-mirrors -i --default & sudo pacman -Syy


====Permanently switch branch====
<!--T:98-->
sudo pacman-mirrors -a --set-branch -b unstable & sudo pacman -Syy
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'''.


====What branch am I on====
<!--T:99-->
sudo pacman-mirrors -a --get-branch
''You must manually merge changes/additions into your pacman-mirrors.conf.''


====Use specific protocols====
==Forum posts== <!--T:100-->
sudo pacman-mirrors -a --protocols https http & sudo pacman -Syy
* [https://forum.manjaro.org/search?q=pacman-mirrors%20order%3Alatest Pacman-mirrors in the forum]
</translate>


====Use all protocols====
[[Category:System administration]]
sudo pacman-mirrors -a --protocols all & sudo pacman -Syy
[[Category:Package management]]
[[Category:GitLab Core]]
[[Category:Metagroup base]]


==Forum posts==
[[Category:Page is in review process{{#translation:}}]]
[https://forum.manjaro.org/search?q=pacman-mirrors%20order%3Alatest Pacman-mirrors in the forum]
[[Category:Contents Page{{#translation:}}]]

Latest revision as of 04:08, 21 June 2024

Other languages:
English • ‎français • ‎русский • ‎中文 • ‎中文(中国大陆)‎

Pacman-Mirrors

Pacman-mirrors is a Manjaro specific utility for generating and maintaining the system mirrorlist. This article covers current version 4.x. 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 some generic websites. The sites are chosen due to their general availability. pacman-mirrors will selfupdate by downloading mirrors.json and status.json from repo.manjaro.org.

  1. repo.manjaro.org
  2. wikipedia.org
  3. bitbucket.org

Should you get certificates error and pacman-mirrors throws a message of missing internet connection - you must verify your computers firmware date and time as this is probably completely off either because of configuration or a malfunctioning CMOS battery.

The app is run by an ordinary user with superuser rights from the console and when no arguments are given it will display pacman-mirrors version followed by status of the mirrors currently listed in your mirrorlist.

user $ sudo pacman-mirrors COPY TO CLIPBOARD


Exactly how the app generates the mirrorlist is controlled by supplying arguments on the commandline.

IMPORTANT

When to use a forced metadata refresh

When pacman requests the metadata from the mirror then - to avoid unnecessary download - pacman asks for Last-Modified header for the metadata on the server.

Only in the event that Last-Modifed on the mirror is newer - pacman requests the complete file.

This can present an awkward scenario where the local metadata is newer than the mirror but it contains older content.

This inconsistency may then generate HTTP 404 Not Found errors because the local metadata could contain references to package versions which no longer exist.

The doubled yy is to mitigate such possible issues - especially when you switch branch or mirror.

It is bad practise to indiscrimately use -Syyu for update scenarios, but - pamac mirrorlist timer rewrites the mirrorlist on a weekly or bi-weekly basis - thus increasing the possibility of having inconsistent metadata - in which case the doubled yy makes sense - which is also why it is used in the pacman-mirrors man page.

To further the inconsistency - pamac uses copies of the pacman database - which has caused confusion before - pamac and pacman being in disagreement over available updates.

The commands presented in this document uses the syntax -Syu thus leaving it to the user to add the extra -Syyu only in case where it is strictly necessary.


Tip
Every run of pacman-mirrors requires you to syncronize your database and update your system.
user $ sudo pacman -Syu COPY TO CLIPBOARD


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. For more detailed information on how pacman works you can read up on the Archlinux Wiki

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.
All samples are using the long name version of the argument. For short versions have a look at the man page or the usage command

Commands giving information

Man page

user $ man pacman-mirrors COPY TO CLIPBOARD


Help on usage

user $ pacman-mirrors --help COPY TO CLIPBOARD


Version

user $ pacman-mirrors --version COPY TO CLIPBOARD


Mirror status

user $ pacman-mirrors --status COPY TO CLIPBOARD


List available countries

In default mirror pool

user $ pacman-mirrors --country-list COPY TO CLIPBOARD


In custom mirror pool

user $ pacman-mirrors --country-config COPY TO CLIPBOARD


What branch am I on

user $ pacman-mirrors --get-branch COPY TO CLIPBOARD


Commands using defaults

Update mirrorlist with the fastest mirrors

user $ sudo pacman-mirrors --fasttrack && sudo pacman -Syu COPY TO CLIPBOARD


Limit to 5 mirrors

An optional number can be supplied to limit the number of mirrors in the mirrorlist

user $ sudo pacman-mirrors --fasttrack 5 && sudo pacman -Syu COPY TO CLIPBOARD


Mirrors for your country only

Not all countries have mirrors, if geoip returns a country not in the pool all mirrors will be used.

user $ sudo pacman-mirrors --geoip && sudo pacman -Syu COPY TO CLIPBOARD


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 continent

Create a custom mirror pool using mirrors from the continent determined by querying a geolocation service

user $ sudo pacman-mirrors --continent && sudo pacman -Syu COPY TO CLIPBOARD


Customize mirror pool by countries

Create a custom mirror pool using mirrors from Germany, France and Austria

user $ sudo pacman-mirrors --country Germany,France,Austria && sudo pacman -Syu COPY TO CLIPBOARD


Customize mirror pool by interactive selection

Create a custom mirror pool using the --default mirror pool --interactive will list all available mirrors and procotols in a gui windows allowing to sort the columns and interactively select according to your preferences.

user $ sudo pacman-mirrors --interactive --default && sudo pacman -Syu COPY TO CLIPBOARD


Use specific protocols (prioritized)

Rank the current mirror pool using only https and http protocol

user $ sudo pacman-mirrors --api --protocol https,http && sudo pacman -Syu COPY TO CLIPBOARD


Switch branch to unstable and use German mirrors

Change the system branch to unstable and create a custom mirror pool using mirrors from Germany

user $ sudo pacman-mirrors --country Germany --api --set-branch unstable && sudo pacman -Syu COPY TO CLIPBOARD


Switch branch and use German mirrors with https

Change the system branch to unstable, set configuration to use https only and create a custom mirror pool using mirrors from Germany

user $ sudo pacman-mirrors --country Germany --api --set-branch unstable --protocol https && sudo pacman -Syu COPY TO CLIPBOARD


Reset

You will come to a point where you want to reset to defaults

user $ sudo pacman-mirrors --country all --api --protocols all --set-branch stable && sudo pacman -Syu COPY TO CLIPBOARD


Overview

Available arguments

All available arguments can be viewed by unfolding this block

➜  ~ pacman-mirrors -h      
Version 4.16.4
USAGE:
 pacman-mirrors [-h] [-f [NUMBER]] [-i [-d]] [-m METHOD] [--status]
		[-c COUNTRY [COUNTRY...] | [--geoip] | [--continent]]
		[-l] [-lc] [-q] [-t SECONDS] [-v] [-n]
		[--api] [-S/-B BRANCH] [-p PREFIX]
			[-P PROTO [PROTO...]] [-R] [-U URL]

METHODS:
  -i, --interactive     Generate custom mirrorlist
  -f, --fasttrack [NUMBER]
                        Generate mirrorlist with a number of up-to-date
                        mirrors. Overrides : --geoip, --method
  -c, --country COUNTRY [COUNTRY ...]
                        Comma separated list of countries, from which mirrors
                        will be used
  --geoip               Get current country using geolocation
  --continent           Use continent from geolocation

API:
  -a, --api             [-p PREFIX][-R][-S/-B|-G BRANCH][-P PROTO [PROTO ...]]
  -S, -B, --set-branch {stable,stable-staging,testing,unstable}
                        API: Replace branch in configuration
  -p, --prefix PREFIX   API: Set prefix to : $mnt | /mnt/install
  -P, --proto, --protocols {all,http,https,ftp,ftps} [{all,http,https,ftp,ftps} ...]
                        API: Replace protocols in configuration
  -R, --re-branch       API: Replace branch in mirrorlist
  -U, --url URL         API: Replace mirror url in mirrorlist

MISC:
  -G, --get-branch      Return branch from configuration
  -d, --default         INTERACTIVE: Load default mirror file
  -h, --help
  -l, --list, --country-list
                        List all available countries
  -lc, --country-config
                        lists configured mirror countries
  -m, --method {rank,random}
                        Generation method
  -n, --no-mirrorlist   Use to skip generation of mirrorlist
  -q, --quiet           Quiet mode - less verbose output
  -s, --no-status       Ignore mirror branch status
  -t, --timeout SECONDS
                        Maximum waiting time for server response
  -v, --version         Print the pacman-mirrors version
  --no-color
  --interval INTERVAL   Max. number of hours since last sync
  -g                    Create mirror list from active pool.
  --status              Status for the current mirror list.
  --use-async           Experimental async mirror test.

Files used by pacman-mirrors

File: /etc/pacman-mirrors.conf (sample - can be changed by pacman-mirrors api commands)

To view the content of a default configuration - click the link to the right --->

~ >>> 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 =

    ## When set to False - all certificates are accepted.
    ## Use only if you fully trust all ssl-enabled mirrors.
    # SSLVerify = True

File: /usr/share/pacman-mirrors/mirrors.json (sample - self updating)

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 --country Denmark && sudo pacman -Syyu                                                                                                         
.: 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'
:: Synkroniserer pakkedatabaser...
 core                          143,1 KiB  10,7M/s 00:00 [##############################] 100%
 extra                        1719,8 KiB  10,3M/s 00:00 [##############################] 100%
 community                       4,5 MiB  11,0M/s 00:00 [##############################] 100%
 multilib                      177,7 KiB  13,3M/s 00:00 [##############################] 100%
:: Starter fuld systemopgradering...
 der er intet at udføre

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)

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

Continent

The --continent argument is using a geolocation function to create a custom mirror pool from countries within the geolocated continent.

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. This creates a custom mirror pool. The countries is an example - check the country list if in doubt.

user $ sudo pacman-mirrors --country Germany,France,Austria && sudo pacman -Syu COPY TO CLIPBOARD


If a supplied country does not offer a mirrorserver the app quits with an error explaining why.

user $ sudo pacman-mirrors --country Antarctica && sudo pacman -Syu COPY TO CLIPBOARD


.: 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 -Syu
:: Querying servers, this may take some time
=> Testing mirrors in France
:: Writing mirror list
:: Mirrorlist generated and saved to: /etc/pacman.d/mirrorlist

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], --continent-- or --country argument.

A word of caution

Don't limit yourself too much. Pacman-mirrors will only use up-to-date mirrors in the final mirrorlist. Also observe this: Your custom mirror pool will not be changed - even if a mirror leaves service or becomes unmaintained. It is your reponsibility to maintain your custom mirror pool in the event the official mirrorpool is changed.

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(whether default or custom)

user $ sudo pacman-mirrors --interactive && sudo pacman -Syu COPY TO CLIPBOARD


Second option is using --interactive --default. This force the use of the official mirror pool

user $ sudo pacman-mirrors --interactive --default && sudo pacman -Syu COPY TO CLIPBOARD


Third option is supplying a list of countries with --country. The countries is an example - check the country list if in doubt.

user $ sudo pacman-mirrors --country Germany,France,Austria && sudo pacman -Syu COPY TO CLIPBOARD


Fourth option is --continent. The countries used is determined by the continent they are assigned to and can optionally be combined with --interactive.

user $ sudo pacman-mirrors --continent [--interactive] COPY TO CLIPBOARD


Using --interactive option, pacman-mirrors will process the available mirrors and present you with a list in which you will select your desired mirrors. In any 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 and changing the custom mirror pool

First option to reset is to default mirror pool

user $ sudo pacman-mirrors --country all && sudo pacman -Syu COPY TO CLIPBOARD


Second option to is to use --default with --interactive and creating a new custom mirror pool

user $ sudo pacman-mirrors --interactive --default && sudo pacman -Syu COPY TO CLIPBOARD


  • 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 and use those for a custom mirror pool. The countries is an example - check the country list if in doubt.

user $ sudo pacman-mirrors --country Germany,France,Austria && sudo pacman -Syu COPY TO CLIPBOARD


  • If you supply the same preferred countries on every reset you will get your mirror pool updated with added or removed mirrors.

The --continent option has a behavior similar to --country

Apply pacman-mirrors defaults

user $ sudo pacman-mirrors --country all --api --protocol all -set-branch stable && sudo pacman -Syu COPY TO CLIPBOARD


The system will throw messages about newer packages on the system. These messages can safely be ignored and they dissappear when the installed package(s) equals the system branch.

manpage

  • The manpage is in section 8 (System administration commands)
  • man page


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.

Forum posts

Cookies help us deliver our services. By using our services, you agree to our use of cookies.