Difference between revisions of "Pacman-mirrors"
Views
Actions
Namespaces
Variants
Tools
(Marked this version for translation) |
m (fixed link to documentation page on gitlab) |
||
Line 66: | Line 66: | ||
Commands for info do not require superuser - changing systemfiles do.<br/> | Commands for info do not require superuser - changing systemfiles do.<br/> | ||
All samples are using the long name version of the argument. | 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/ | 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--> | ===Commands giving information=== <!--T:14--> |
Latest revision as of 04:08, 21 June 2024
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.
- repo.manjaro.org
- wikipedia.org
- 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.
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.
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
Help on usage
Version
Mirror status
List available countries
In default mirror pool
In custom mirror pool
What branch am I on
Commands using defaults
Update mirrorlist with the fastest mirrors
Limit to 5 mirrors
An optional number can be supplied to limit the number of mirrors in the mirrorlist
Mirrors for your country only
Not all countries have mirrors, if geoip returns a country not in the pool all mirrors will be used.
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
Customize mirror pool by countries
Create a custom mirror pool using mirrors from Germany, France and Austria
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.
Use specific protocols (prioritized)
Rank the current mirror pool using only https and http protocol
Switch branch to unstable and use German mirrors
Change the system branch to unstable and create a custom mirror pool using mirrors from Germany
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
Reset
You will come to a point where you want to reset to defaults
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
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.
If a supplied country does not offer a mirrorserver the app quits with an error explaining why.
.: 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)
Second option is using --interactive --default. This force the use of the official mirror pool
Third option is supplying a list of countries with --country. The countries is an example - check the country list if in doubt.
Fourth option is --continent. The countries used is determined by the continent they are assigned to and can optionally be combined with --interactive.
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
Second option to is to use --default with --interactive and creating a new custom mirror pool
- 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.
- 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
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.