Arch uses two tiers of mirrors; the first, Tier 1, syncs directly from archlinux.org every hour. Tier 2 mirrors sync from Tier 1. Synching from archlinux.org directly is prohibited.
This ensures that bandwidth charges are equitably distributed amongst the various mirrors and that people in diverse geographic locations are not penalized with slow downloads from mirrors on the other side of the globe. This is an efficient method to distribute the load and costs of pushing software.
Technically, you don't need to maintain a list of more than one mirror; if you have a local mirror that is reliable and does not fall out-of-date (you can check by visiting the mirror status page, or by using a tool like reflector to automatically generate an up-to-date list for you), then you can just have the single entry in your mirrorlist.
As Arch is a rolling release, it is important that you ensure that your local database is kept up-to-date (with pacman -Syu
), and that you are syncing to a mirror that is also up-to-date with archlinux.org. One of the most common problems newcomers to Arch face is not understanding this relationship and then finding that they are unable to upgrade because their local database does not match the current repositories, so pacman
will complain about being unable to find version xx
of a package.
If you read your /etc/pacman.conf
, you will see that it contains a number of repositories: [core], [extra] and [community], with the option to include [testing], [multilib] and custom repositories. These repositories contain all of the officially supported packages; so each will be synced to a mirror from archlinux.org, with the exception of custom repos which are hosted by members of the Arch community.
You can read more about how Arch mirrors work on the Wiki mirroring page.