Manjaro Difference between revisions of "Pacman-mirrors"

Difference between revisions of "Pacman-mirrors"

From Manjaro
imported>Fhdk
imported>Fhdk
(Updated arguments list)
Line 26: Line 26:
<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
<pre>
<pre>
optional arguments:
   -h, --help            show this help message and exit
   -h, --help            show this help message and exit
   -g, --generate        Generate mirrorlist
 
METHODS:
   -g, --generate        Generate mirrorlist with defaults
  -f, --fasttrack NUMBER
                        Generate mirrorlist with a number of up-to-date
                        mirrors. Ignores: --country --interactive --method
                        --geoip
  -i, --interactive    Generate custom mirrorlist
  -d, --default        Interactive: Load default mirror file
   -m, --method {rank,random}
   -m, --method {rank,random}
                         Generation method
                         Generation method
  -b, --branch {stable,testing,unstable}
 
                        Branch name
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. Ignored if
   --geoip              Get current country using geolocation
                         '-c/--country' is supplied
  -l, --country-list, --list
   -d, --mirror_dir PATH
                        List all available countries
                        Mirrors list path
 
   -o, --output FILE    Output file
BRANCH:
  -b, --branch {stable,testing,unstable}
                        Branch name
  -G, --get-branch      API: Return branch from configuration
  -S, --set-branch {stable,testing,unstable}
                        API: Replace branch in configuration
 
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} ...]
                         API: Replace protocols in configuration
  -R, --re-branch      API: Replace branch in mirrorlist
   -U, --url URL        API: Replace mirror url in mirrorlist
 
MISC:
   -q, --quiet          Quiet mode - less verbose output
   -t, --timeout SECONDS
   -t, --timeout SECONDS
                         Maximum waiting time for server response
                         Maximum waiting time for server response
  --no-update          Don't generate mirrorlist if 'NoUpdate = True' in the
                        configuration file
  -i, --interactive    Generate custom mirrorlist
   -v, --version        Print the pacman-mirrors version
   -v, --version        Print the pacman-mirrors version
   -q, --quiet          Quiet mode - less verbose output
   -n, --no-mirrorlist   Use to skip generation of mirrorlist
   -f, --fasttrack DIGIT
   -y, --sync           Syncronize pacman databases
                        A quick mirrorlist. Overrides -c -i -m --geoip
 
   -l, --list           List all available countries
  --default            Load default mirror file
</pre>
Available from version 4.1
<pre>
API:
  -a, --api            [--prefix] [--protocols] [--set-branch|--get-branch
                        {-b <branch>}]
  --get-branch          get-branch
  --set-branch          set-branch
  --prefix PREFIX      [--prefix {'$mnt'|'/some/path'}]
  --proto PROTO [PROTO ...]
                        [--proto {all|http https ftp ftps}]
  -n, --no-mirrorlist  no mirrorlist
</pre>
</pre>
</div>
</div>

Revision as of 07:19, 8 September 2017

Manjaro Pacman-Mirrors

A utility for generating and maintaining the systems mirrorlist. This article covers current version 4.0.4. Future enhancements are marked with version 4.1

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.

Use

For most functions, a working internet connection is required. From v4, Pacman-Mirrors will check if network is online. It is doing so by querying https://manjaro.org.The app is run by an ordinary user with superuser rights from the console and when no arguments are given it will display a usage description as if -h had been given.

$ sudo pacman-mirrors

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

Important After every change to your mirrorlist it is mandatory to run an update on your pacman database

$ sudo pacman -Syy

If you fail to do so, the issue/s which had you make change might not be solved.

Available arguments

All available arguments can be viewed by unfolding this block


optional arguments:
  -h, --help            show this help message and exit

METHODS:
  -g, --generate        Generate mirrorlist with defaults
  -f, --fasttrack NUMBER
                        Generate mirrorlist with a number of up-to-date
                        mirrors. Ignores: --country --interactive --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 ...]
                        Comma separated list of countries, from which mirrors
                        will be used
  --geoip               Get current country using geolocation
  -l, --country-list, --list
                        List all available countries

BRANCH:
  -b, --branch {stable,testing,unstable}
                        Branch name
  -G, --get-branch      API: Return branch from configuration
  -S, --set-branch {stable,testing,unstable}
                        API: Replace branch in configuration

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} ...]
                        API: Replace protocols in configuration
  -R, --re-branch       API: Replace branch in mirrorlist
  -U, --url URL         API: Replace mirror url in mirrorlist

MISC:
  -q, --quiet           Quiet mode - less verbose output
  -t, --timeout SECONDS
                        Maximum waiting time for server response
  -v, --version         Print the pacman-mirrors version
  -n, --no-mirrorlist   Use to skip generation of mirrorlist
  -y, --sync            Syncronize pacman databases

Defaults

PacmanMirrors has some reasonable defaults

- Ranking mirrors with the fastest mirrors on top
- Using stable branch
- Using all mirrors

The -g or --generate argument is only for running pacman-mirrors with all defaults. If you are using other arguments eg.-b unstable the generate argument is not needed.

Country

Instead of pacman-mirrors probing all mirrors in all countries it is possible to supply a list of countries from which to use the mirrors.

$ sudo pacman-mirrors --country Germany,France,Austria

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

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

Branch

Situations could exist, in which you want a not yet released to stable software, which contains a desired improvement or bugfix. For such situations it is possible to make a temporary switch to testing or unstable branch

$ sudo pacman-mirrors --branch testing

Syncronize your pacman database with the new mirror/branch combination and install whatever software needed from that branch.

$ sudo pacman -Syy some-software-package-you-need

After installation switch back

$ sudo pacman-mirrors --branch stable

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

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

Fasttrack

The following arguments -c -i -m --geoip will not work in conjunction with -f.

The smaller number of mirrors you choose for your mirrorlist, the possibility of getting a not so responsive mirror increases, since only the first n in the list are tested, not all of them. A reasonable number would be between 5 and 10.

FAQ

fasttrack

So, pacman-mirrors -f 2 takes the same time to create /etc/pacman.d/mirrorlist as pacman-mirrors -f 20?

No. pacman-mirrors -f 2 will approx. be 10x faster than pacman-mirrors -f 20 since only 2 mirrors are probed versus 20 mirrors.

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?

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.

pacman-mirrors.conf

My branch changes itself

When pacman-mirrors is updated it is by convention that pacman replaces your pacman-mirrors.conf. Check if you have some of these files:

  • /etc/pacman-mirrors.conf.pacsave
  • /etc/pacman-mirrors.conf.pacnew
  • /etc/pacman-mirrors.conf.<date>.backup

You must manually merge changes/additions into your pacman-mirrors.conf.

TL:DR

Default mirrorlist

sudo pacman-mirrors -g

List available countries

sudo pacman-mirrors -l

Mirrors for your country

sudo pacman-mirrors --geoip

Mirrors for preferred countries

sudo pacman-mirrors -c Germany,France,Austria

Up-to-date mirrors on all branches

sudo pacman-mirrors -f 5

Temporarily switch to unstable branch

sudo pacman-mirrors -b unstable
sudo pacman -Syy

Switch back to stable branch

sudo pacman-mirrors -b stable
sudo pacman -Syy

Having fun handpicking mirrors and protocols

sudo pacman-mirrors -i --default

v4.1-dev Permanently switch branch

sudo pacman-mirrors -a --set-branch -b unstable

v4.1-dev What branch am I on

sudo pacman-mirrors -a --get-branch

v4.1-dev Use specific protocols

sudo pacman-mirrors -a --protocols https http

v4.1-dev Use all protocols

sudo pacman-mirrors -a --protocols all

Forum posts

Pacman-mirrors in the forum

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