From Mageia wiki
Jump to: navigation, search


Drakconf multiflag.png
Other languages
English ;
Synopsis:
Identify "nearest" Mageia Linux rsync servers and find directories for downloading install images and updates.

Introduction

This page describes how to identify a Mageia Linux rsync server and directories from which you may download install images and updates.
Mageia Linux mirror servers are listed as described at this page: https://wiki.mageia.org/en/Mirrors_API

Two methods are shown for determining the "nearness" of sites through the network: ICMP echo request and tcptraceroute. Note that not all sites respond to ICMP but traceroute will find sites that do not respond to ICMP. ICMP is relatively quick but tcptraceroute takes a little longer to complete.


Listing servers

By constructing a URL for the version of Mageia you are looking for, you can identify candidate upstream rsync servers.

In the following examples shell variable url is defined and then used to access the Mageia mirrors API site.
We also define a shell variable mgaver for the Mageia Version of interest (which at time of editing this is Mageia 5).


32bit (i586) version

# Get a list of Mageia mirror servers for Mageia 5 32-bit version (i586) # (copy & paste, run as non-root) mgaver=5 url=http://mirrors.mageia.org/api/mageia.${mgaver}.i586.list wget -q ${url} -O - | grep rsync: # end of copy & paste


64-bit (x86_64) version

# Get a list of Mageia mirror servers for Mageia 5 64-bit version (x86_64) # (copy & paste, run as non-root) mgaver=5 url=http://mirrors.mageia.org/api/mageia.${mgaver}.x86_64.list wget -q ${url} -O - | grep rsync: # end of copy & paste


automagic version matching your current computer's bit-ness and installed Magiea version

# Get a list of Mageia mirror servers, automatically matching 32 or 64 bit-ness with your computer and installed Mageia version # (copy & paste, run as non-root) mgaver=$(grep release /etc/release | awk '{print $3}') arch=$(uname -m | sed -e "s/i.86/i586/") url=http://mirrors.mageia.org/api/mageia.${mgaver}.${arch}.list wget -q ${url} -O - | grep rsync: # end of copy & paste

You can either simply select one of these servers or you can test how "close" each is in the network to you.


Using ICMP echo requests to find nearest servers

This method is faster than the tcptraceroute method (shown below) but may not be precise as it does not take account of the number of network connections (or "hop count") between your computer and the rsync servers.

Be aware that some sites disable ICMP echo request traffic. This is why some sites do not appear in the ICMP results but do appear in the tcptraceroute results (see below).


First, make a list of rsync servers

# Obtain a list of Mageia mirror servers via https://wiki.mageia.org/en/Mirrors_API, results in /tmp/rsync_list.text # (copy & paste, run as non-root) wget -q ${url} -O - | grep rsync: | sed -e "s/.*=rsync//" -e "s/^...//" -e "s,/.*,," | sort -u > /tmp/rsync_list.text # end of copy & paste


Determine how long ICMP echo requests take to be acknowledged for each of these rsync servers

# Discover ICMP echo request times for a list of servers in /tmp/rsync_list.text # (copy & paste, run as non-root) > /tmp/rsync_ping_list.text for i in $(cat /tmp/rsync_list.text); do echo ping -c 4 ${i} echo $(ping -c 4 ${i} | tail -1 | awk -F / '{print $5}') ${i} >> /tmp/rsync_ping_list.text done # end of copy & paste


Display the results in order with nearest at top

# Display results of ICMP echo request test in ascending order if response time (copy & paste, run as non-root) sort -n /tmp/rsync_ping_list.text | grep -v "^[a-z]" | sed -e "s/ /\t/"g | nl # end of copy & paste

Putting it all together (ICMP method)

# Define the query for the Mageia mirrors API page: # (copy & paste, as non-root) mgaver=$(grep release /etc/release | awk '{print $3}') arch=$(uname -m | sed -e "s/i.86/i586/") url=http://mirrors.mageia.org/api/mageia.${mgaver}.${arch}.list # Obtain a list of Mageia mirror servers via https://wiki.mageia.org/en/Mirrors_API, results in /tmp/rsync_list.text wget -q ${url} -O - | grep rsync: | sed -e "s/.*=rsync//" -e "s/^...//" -e "s,/.*,," | sort -u > /tmp/rsync_list.text # Discover ICMP echo request times for a list of servers in /tmp/rsync_list.text > /tmp/rsync_ping_list.text for i in $(cat /tmp/rsync_list.text); do echo ping -c 4 ${i} echo $(ping -c 4 ${i} | tail -1 | awk -F / '{print $5}') ${i} >> /tmp/rsync_ping_list.text done # Display results of ICMP echo request test in ascending order of response time echo " Order Time Server"; sort -n /tmp/rsync_ping_list.text | grep -v "^[a-z]" | sed -e "s/ /\t/"g | nl # end of copy & paste


UK example - ICMP method

The following results are an example from the UK. This list will be different from other parts of the world.

Results for 2022:

$ echo " Order Time Server"; sort -n /tmp/rsync_ping_list.text | grep -v "^[a-z]" | sed -e "s/ /\t/"g | nl Order Time Server 1 8.424 www.mirrorservice.org 2 15.885 ftp.snt.utwente.nl 3 23.856 ftp.fau.de 4 26.105 ftp-stud.hs-esslingen.de 5 26.827 ftp5.gwdg.de 6 31.707 vodka.sublink.org 7 31.867 ftp.fi.muni.cz 8 32.301 fr2.rpmfind.net 9 41.194 ftp.icm.edu.pl 10 41.879 quantum-mirror.hu 11 45.287 ftp.acc.umu.se 12 57.259 mageia.ip-connect.vn.ua 13 61.637 mageia.ip-connect.info 14 61.982 mirror.yandex.ru 15 65.307 mirror.datacenter.by 16 87.273 mirror.math.princeton.edu 17 88.674 mageia.jameswhitby.net 18 95.777 distro.ibiblio.org 19 234.265 ftp.tsukuba.wide.ad.jp 20 269.031 mirrors.ustc.edu.cn

Results for 2016:

$ echo " Order Time Server"; sort -n /tmp/rsync_ping_list.text | grep -v "^[a-z]" | sed -e "s/ /\t/"g | nl Order Time Server 1 8.835 www.mirrorservice.org 2 16.064 ftp.snt.utwente.nl 3 17.017 ftp.belnet.be 4 22.860 mageia.mirror.triple-it.nl 5 28.601 ftp-stud.hs-esslingen.de 6 31.143 vodka.sublink.org 7 32.004 ftp5.gwdg.de 8 41.650 mirror.yandex.ru 9 48.551 ftp.icm.edu.pl 10 50.502 mirrors.netix.net 11 56.437 mirror.datacenter.by 12 56.884 ftp.acc.umu.se 13 62.541 mageia.ip-connect.vn.ua 14 96.659 distro.ibiblio.org 15 97.520 ftp.cc.uoc.gr 16 100.245 ftp.fi.muni.cz 17 105.414 mageia.jameswhitby.net 18 147.626 mirrors.kernel.org 19 152.199 mirror.easthsia.com 20 170.738 mirror.cedia.org.ec 21 187.323 mirrors.yun-idc.com 22 277.095 ftp.tsukuba.wide.ad.jp 23 318.474 mageia.c3sl.ufpr.br 24 323.335 ftp.yzu.edu.tw

Verify that rsync works with selected upstream rsync server:

$ rsync_server=www.mirrorservice.org; rsync ${rsync_server}:: 2>&1 > /dev/null && echo rsync OK with ${rsync_server} || echo rsync NOT OK with ${rsync_server}
rsync OK with www.mirrorservice.org

Also verify that rsync is working for the whole list of rsync servers found (here sorted with fastest responding first):

$ for i in $(sort -n /tmp/rsync_ping_list.text | grep -v "^[a-z]" | sed -e "s/ /\t/"g | awk '{print $2}'); do > rsync ${i}:: 2>&1 > /dev/null && echo rsync OK ${i} || echo rsync NOT OK ${i} > done rsync OK www.mirrorservice.org rsync OK ftp.snt.utwente.nl rsync OK ftp.belnet.be rsync OK mageia.mirror.triple-it.nl rsync OK ftp-stud.hs-esslingen.de rsync OK vodka.sublink.org rsync OK ftp5.gwdg.de rsync OK mirror.yandex.ru rsync OK ftp.icm.edu.pl rsync OK mirrors.netix.net rsync OK mirror.datacenter.by rsync OK ftp.acc.umu.se rsync OK mageia.ip-connect.vn.ua rsync OK distro.ibiblio.org rsync OK ftp.cc.uoc.gr rsync OK ftp.fi.muni.cz rsync OK mageia.jameswhitby.net rsync OK mirrors.kernel.org rsync OK mirror.easthsia.com rsync OK mirror.cedia.org.ec rsync OK mirrors.yun-idc.com rsync OK ftp.tsukuba.wide.ad.jp rsync OK mageia.c3sl.ufpr.br rsync OK ftp.yzu.edu.tw


Using "tcptraceroute" to find the nearest rsync server

This method is slower than the ICMP method (described above) but has the advantage of finding the number of hops in the network between your computer and the rsync servers.
Another advantage is that we are using tcptraceroute is test connectivity to the rsync server port on 873/tcp.
While the ICMP test (above) can fail if the rsync server is configured not to respond to ICMP echo requests.
The reason for the slowness is because there are many more timeouts involved using tcptraceroute.


Install tcptraceroute

tcptraceroute is not usually installed as part of the "base" in Mageia Linux.
Before starting, ensure that the tcptraceroute command is installed and that root access is available.

# Install tcptraceroute command # (copy&paste, run as root) /usr/sbin/urpmi tcptraceroute # end of copy & paste


Obtain list of rsync servers

Start with the same list of server names extracted from the Mageia mirrors API page:

# Obtain a list of Mageia mirror servers via https://wiki.mageia.org/en/Mirrors_API, results in /tmp/rsync_list.text # (copy & paste, run as non-root) mgaver=$(grep release /etc/release | awk '{print $3}') url=http://mirrors.mageia.org/api/mageia.${mgaver}.x86_64.list wget -q ${url} -O - | grep rsync: | sed -e "s/.*=rsync//" -e "s/^...//" -e "s,/.*,," | sort -u > /tmp/rsync_list.text # end of copy & paste


Determine hop count and response times using tcptraceroute

Note that need to be running as root to run tcptraceroute as follows:

# Discover hop count and response times for servers in /tmp/rsync_list.text using tcptraceroute # (copy & paste, run as root) > /tmp/tcptraceroute_out.txt for i in $(cat /tmp/rsync_list.text); do echo "tcptraceroute ${i} 873 | tail -1 >> /tmp/tcptraceroute_out.txt" tcptraceroute ${i} 873 | tail -1 >> /tmp/tcptraceroute_out.txt done # end of copy & paste


Display the results in order with nearest at top (tcptraceroute method)

# Display results - primary sort key is hop count, secondary sort key is response time # (copy & paste, run as non-root) sort -k 1,1 -k 7,7 /tmp/tcptraceroute_out.txt | nl # end of copy & paste


Putting it all together (tcptraceroute method)

NB need to run the following as root to execute tcptraceroute:

# Define the query for the Mageia mirrors API page: # (copy & paste, as root) mgaver=$(grep release /etc/release | awk '{print $3}') arch=$(uname -m | sed -e "s/i.86/i586/") url=http://mirrors.mageia.org/api/mageia.${mgaver}.${arch}.list # Obtain a list of Mageia mirror servers via https://wiki.mageia.org/en/Mirrors_API, results in /tmp/rsync_list.text wget -q ${url} -O - | grep rsync: | sed -e "s/.*=rsync//" -e "s/^...//" -e "s,/.*,," | sort -u > /tmp/rsync_list.text # Discover hop count and response times for servers in /tmp/rsync_list.text using tcptraceroute # ============================================================= # Please be patient as it will take a few minutes to traceroute # ============================================================= > /tmp/tcptraceroute_out.txt for i in $(cat /tmp/rsync_list.text); do echo "tcptraceroute ${i} 873 | tail -1 >> /tmp/tcptraceroute_out.txt" tcptraceroute ${i} 873 | tail -1 >> /tmp/tcptraceroute_out.txt done # Display results - primary sort key is hop count, secondary sort key is response time echo " Order Hops Time Server"; < /tmp/tcptraceroute_out.txt sed -e "s/\* //g" -e "s/ ms//g" \ | awk '{printf("%02d %02.3f %s\n",$1,$5,$2)}' | sort -nk 2,2 -k 1,1 | sed -e "s/ /\t/g"| nl # end of copy & paste


UK example

Here are example tcptraceroute results from the UK in 2022.

Note that the results are sorted first by hop count and then by average response time.
The first column is the ordinal (row number), 2nd hop count, 3rd response time, 4th server name.

$ echo "Order Hops Time Server"; < /tmp/tcptraceroute_out.txt sed -e "s/\* //g" -e "s/ ms//g" | awk '{printf("%02d %02.3f %s\n",$1,$5,$2)}' | sort -nk 2,2 -k 1,1 | sed -e "s/ /\t/g"| nl Order Hops Time Server 1 17 8.053 www.mirrorservice.org 2 16 14.354 distrib-coffee.ipsl.jussieu.fr 3 16 14.369 aglae.biomedicale.univ-paris5.fr 4 15 15.757 ftp.snt.utwente.nl 5 14 23.759 ftp.rrze.uni-erlangen.de 6 14 26.631 ftp6.gwdg.de 7 18 28.934 rhlx01.hs-esslingen.de 8 21 29.449 mandril.creatis.insa-lyon.fr 9 16 31.206 vodka.sublink.ORG 10 16 31.771 odysseus.fi.muni.cz 11 16 41.062 SunSITE.icm.edu.pl 12 14 41.200 5402F08E.dsl.pool.telekom.hu 13 23 45.453 hammurabi.ftp.acc.umu.se 14 14 58.757 main13.ip-connect.net.ua 15 16 60.519 main10.ip-connect.net.ua 16 16 65.428 mirror.datacenter.by 17 27 66.059 mirror.yandex.ru 18 13 86.490 pool-72-82-55-97.rcmdva.fios.verizon.net 19 19 88.987 mirror.math.princeton.edu 20 17 92.790 distro.ibiblio.org 21 19 190.339 mirrors.ustc.edu.cn 22 18 220.515 static.148.255.111.190.cps.com.ar 23 16 229.405 ftp.tsukuba.wide.ad.jp


Here are example tcptraceroute results from the UK in 2016.

$ echo "Order Hops Time Server"; < /tmp/tcptraceroute_out.txt sed -e "s/\* //g" -e "s/ ms//g" | awk '{printf("%02d %02.3f %s\n",$1,$5,$2)}' | sort -nk 2,2 -k 1,1 | sed -e "s/ /\t/g"| nl Order Hops Time Server 1 13 9.233 www.mirrorservice.org 2 12 14.140 93.187.10.106.triple-it.nl 3 20 14.395 distrib-coffee.ipsl.jussieu.fr 4 20 14.565 aglae.biomedicale.univ-paris5.fr 5 13 15.174 ftp.snt.utwente.nl 6 13 16.170 ftp.belnet.be 7 19 28.252 rhlx01.hs-esslingen.de 8 19 30.812 ftp5.gwdg.de 9 15 31.009 vodka.sublink.ORG 10 18 40.460 mandril.creatis.insa-lyon.fr 11 17 42.908 mirror.yandex.ru 12 16 48.209 SunSITE.icm.edu.pl 13 19 57.058 napoleon.acc.umu.se 14 17 58.267 mirrors.netix.net 15 17 60.311 178.124.134.106 16 13 61.495 91.218.89.74 17 16 91.849 distro.ibiblio.org 18 21 97.057 ftp.cc.uoc.gr 19 17 100.845 pool-98-117-95-2.rcmdva.fios.verizon.net 20 17 104.860 odysseus.fi.muni.cz 21 18 145.301 tiz-korg-mirror.kernel.org 22 13 149.836 65.49.77.90 23 21 171.360 mirror.cedia.org.ec 24 19 184.813 114.112.43.174 25 21 293.294 ftp.yzu.edu.tw 26 17 294.147 ftp.tsukuba.wide.ad.jp 27 19 310.225 sagres.c3sl.ufpr.br

Verify that rsync works to your selected upstream rsync server:

$ server=www.mirrorservice.org; rsync ${server}:: 2>&1 > /dev/null && echo rsync OK with ${server} || echo rsync NOT OK with ${server}
rsync OK with www.mirrorservice.org


Locate the Mageia directories on the rsync server

Locate the directory you need to "mirror" by repeatedly appending directory names followed by a "/" to the rsync server:

$ server=ftp.belnet.be $ rsync ${server}:: centos CentOS mirror (approx 94 GB) cpan CPAN mirror (approx 13 GB) debian Debian (approx 610 GB) deepin Linux Deepin packages (approx 47 GB) deepin-cd Linux Deepin ISO images (approx 52 GB) freebsd FreeBSD mirror (approx 875 GB) gentoo Gentoo mirror (approx 217 GB) kali The Kali Archive (approx 241 GB) kali-security The Kali security archive (approx 8 GB) kali-images The Kali ISO images (approx 31 GB) lubuntu Xubuntu mirror (approx 35 GB) mageia Mageia mirror (approx 167 GB) mptcp Multipath TCP project mirror (approx 2 GB) openbsd OpenBSD mirror (approx 1.2 TB) openelec.tv OpenELEC mirror (approx 3.5 GB) sabayon Sabayon mirror (approx 241 GB) slackware Slackware mirror (approx 159 GB) ubuntu Ubuntu mirror (approx 275 GB) videolan Videolan mirror (approx 25 GB) xubuntu Xubuntu mirror (approx 35 GB)
$ rsync ${server}::mageia/ drwxr-xr-x 4,096 2015/03/06 11:51:21 . -rw-rw-r-- 36 2015/12/04 10:50:01 mageia_timestamp -rw-r--r-- 1,889 2011/09/05 22:05:24 mirror.readme -rw-r--r-- 665 2011/06/02 22:30:08 paths.readme drwxr-xr-x 4,096 2015/08/05 08:27:11 distrib drwxrwxr-x 4,096 2015/06/18 21:35:50 iso drwxrwxr-x 4,096 2014/05/05 16:07:09 people drwxrwxr-x 4,096 2012/02/10 19:30:01 software
$ rsync ${server}::mageia/distrib/ drwxr-xr-x 4,096 2015/08/05 08:27:11 . drwxr-xr-x 4,096 2011/05/11 18:03:12 1 drwxr-xr-x 4,096 2012/07/19 09:49:06 2 drwxr-xr-x 4,096 2013/04/25 15:48:40 3 drwxr-xr-x 4,096 2013/04/25 15:48:40 4 drwxr-xr-x 4,096 2015/11/01 22:38:31 5 drwxr-xr-x 4,096 2015/11/23 22:15:50 cauldron

From using the tcptraceroute method we found a preferred server:

$ server=www.mirrorservice.org $ rsync ${server}::mageia.org/pub/mageia/distrib/ ---------------------------------------------------------------------------- Welcome to the University of Kent's UK Mirror Service. More information can be found at our web site: http://www.mirrorservice.org/ Please send comments or questions to help@mirrorservice.org. ---------------------------------------------------------------------------- drwxr-xr-x 4,096 2015/08/05 08:27:11 . drwxr-xr-x 4,096 2011/05/11 18:03:12 1 drwxr-xr-x 4,096 2012/07/19 09:49:06 2 drwxr-xr-x 4,096 2013/04/25 15:48:40 3 drwxr-xr-x 4,096 2013/04/25 15:48:40 4 drwxr-xr-x 4,096 2015/11/01 22:38:31 5 drwxr-xr-x 4,096 2015/11/23 22:15:50 cauldron

So, now we can define:

$ rsync_server=www.mirrorservice.org #based on ICMP test

OR

$ rsync_server=ftp.belnet.be #based on tcptraceroute test

It is also worth noting that while the value for ${rsync_server} will vary depending on where you run the tests (shown above). If your computer is in Finland, you will get different results than I do (my computer is in UK).


Defining urpmi configuration with "rsync" sources

Having identified the rsync server (or Mageia mirror) we will use, we can now re-define our URPMI configuration to use rsync.


Example 1: ftp.belnet.be

In the following example, we are setting urpmi using rsync_server ftp.belnet.be with the following commands run as root.
Note that the following commands automatically determine whether 32bit or 64bit are used:

# Define urpmi configuration for Mageia using rsync server ftp.belnet.be # (copy & paste, run as root) export PATH=/usr/sbin:${PATH} urpmi.removemedia -a # remove any existing urpmi configuration rsync_server=ftp.belnet.be ## modify this line for your preferred server ## mgaver=$(grep release /etc/release | awk '{print $3}') arch=$(uname -m | sed -e "s/i.86/i586/")/ # define the core urpmi source urpmi.addmedia --distrib rsync://${rsync_server}::mageia/distrib/${mgaver}/${arch}/ # Optional: add the "nonfree" and "nonfree-updates" urpmi sources urpmi.addmedia nonfree rsync://${rsync_server}::mageia/distrib/${mgaver}/${arch}/media/nonfree/release/ urpmi.addmedia --update non-free-updates rsync://${rsync_server}::mageia/distrib/${mgaver}/${arch}/media/nonfree/updates/ # Optional: add the "tainted" and "tainted-updates" urpmi sources urpmi.addmedia tainted rsync://${rsync_server}::mageia/distrib/${mgaver}/${arch}/media/tainted/release/ urpmi.addmedia --update tainted-updates rsync://${rsync_server}::mageia/distrib/${mgaver}/${arch}/media/tainted/updates/ # Optional: add the non-Mageia Google Talk Plugin urpmi source urpmi.addmedia --update google-talkplugin http://dl.google.com/linux/talkplugin/rpm/stable/$(uname -m | sed -e "s/i.86/i386/") # Optional: add the non-Mageia Google Chrome urpmi source urpmi.addmedia --update google-chrome http://dl.google.com/linux/chrome/rpm/stable/$(uname -m | sed -e "s/i.86/i386/") #end of copy & paste


Example 2: www.mirrorservice.org

In the following example, we are setting urpmi for the version of Mageia we are running locally using rsync_server www.mirrorservice.org with the following commands run as root.
Note that the following commands automatically determine whether 32bit or 64bit are used:

# Define urpmi configuration for whichever Mageia version is locally running using rsync server www.mirrorservice.org # (copy & paste, run as root) export PATH=/usr/sbin:${PATH} urpmi.removemedia -a # remove any existing urpmi configuration rsync_server=www.mirrorservice.org ## modify this line for your preferred server ## mgaver=$(grep release /etc/release | awk '{print $3}') arch=$(uname -m | sed -e "s/i.86/i586/")/ # define the core urpmi source urpmi.addmedia --distrib rsync://${rsync_server}::mageia.org/pub/mageia/distrib/${mgaver}/${arch}/ # Optional: add the "nonfree" and "nonfree-updates" urpmi sources urpmi.addmedia nonfree rsync://${rsync_server}::mageia.org/pub/mageia/distrib/${mgaver}/${arch}/media/nonfree/release/ urpmi.addmedia --update non-free-updates rsync://${rsync_server}::mageia.org/pub/mageia/distrib/${mgaver}/${arch}/media/nonfree/updates/ # Optional: add the "tainted" and "tainted-updates" urpmi sources urpmi.addmedia tainted rsync://${rsync_server}::mageia.org/pub/mageia/distrib/${mgaver}/${arch}/media/tainted/release/ urpmi.addmedia --update tainted-updates rsync://${rsync_server}::mageia.org/pub/mageia/distrib/${mgaver}/${arch}/media/tainted/updates/ # Optional: add the non-Mageia Google Talk Plugin urpmi source urpmi.addmedia --update google-talkplugin http://dl.google.com/linux/talkplugin/rpm/stable/$(uname -m | sed -e "s/i.86/i386/") # Optional: add the non-Mageia Google Chrome urpmi source urpmi.addmedia --update google-chrome http://dl.google.com/linux/chrome/rpm/stable/$(uname -m | sed -e "s/i.86/i386/") # end of copy & paste


Example 3: distrib-coffee.ipsl.jussieu.fr

# Define urpmi configuration for whichever Mageia version is locally running using rsync server distrib-coffee.ipsl.jussieu.fr # (copy & paste, run as root) export PATH=/usr/sbin:${PATH} urpmi.removemedia -a # remove any existing urpmi configuration rsync_server=distrib-coffee.ipsl.jussieu.fr ## modify this line for your preferred server ## mgaver=$(grep release /etc/release | awk '{print $3}') arch=$(uname -m | sed -e "s/i.86/i586/")/ # define the core urpmi source urpmi.addmedia --distrib rsync://${rsync_server}::mageia/distrib/${mgaver}/${arch}/ # Optional: add the "nonfree" and "nonfree-updates" urpmi sources urpmi.addmedia nonfree rsync://${rsync_server}::mageia/distrib/${mgaver}/${arch}/media/nonfree/release/ urpmi.addmedia --update non-free-updates rsync://${rsync_server}::mageia/distrib/${mgaver}/${arch}/media/nonfree/updates/ # Optional: add the "tainted" and "tainted-updates" urpmi sources urpmi.addmedia tainted rsync://${rsync_server}::mageia/distrib/${mgaver}/${arch}/media/tainted/release/ urpmi.addmedia --update tainted-updates rsync://${rsync_server}::mageia/distrib/${mgaver}/${arch}/media/tainted/updates/ # Optional: add the non-Mageia Google Talk Plugin urpmi source urpmi.addmedia --update google-talkplugin http://dl.google.com/linux/talkplugin/rpm/stable/$(uname -m | sed -e "s/i.86/i386/") # Optional: add the non-Mageia Google Chrome urpmi source urpmi.addmedia --update google-chrome http://dl.google.com/linux/chrome/rpm/stable/$(uname -m | sed -e "s/i.86/i386/") # end of copy & paste

Having redefined the urpmi sources, we apply any pending updates:

# urpmi --auto-update


Other factors

There are other factors to consider when choosing the upstream rsync server. For example:

  1. There is a hierarchical "tree like" structure of rsync servers of Mageia mirrors.
    While the servers near the "top of the tree" will be the most up-to-date those will also be the busiest.
    There is some advantage in rsync'ing from a less busy server.
  2. Network bandwidth.
    This is not the same as ICMP echo request acknowledgement times (e.g. ping response) but it could be an important factor in selecting the upstream server you plan to mirror from.
  3. Number of hops. The connection route between your client and the upstream server can be shown using the command: traceroute ${rsync_server}.
    It may be an advantage to select an upstream server with the fewest routers between your machine and the upstream server.
  4. Geographical location.
    You may have a preference to select an upstream server that is in a close geographical location to your machine (e.g. same country).
  5. Server reliability and availability.
  6. Server processing load and capability.
  7. Server will not respond to ICMP echo requests.
    Some Mageia mirror servers are configured to not respond to ICMP echo requests (e.g. not reply to ping).
    Such servers will not show in the ping test (shown above).
    One reason for not responding to ICMP echo requests is for security: to protect the server from "ping-of-death" DDoS attacks.


Change history

date editor change details
2013_05_20 Paul Blackburn added change history
2013_05_21 Paul Blackburn added tcptraceroute method
2013_05_21 Paul Blackburn added redefining urpmi sources example
2014_03_04 Paul Blackburn updated for Mageia 4 and also automagically determine Mageia version
2015_09_22 Agron Selimaj added automatic release version retrieval to example 1 and removed hard-coded dependency on release 3 to example 1 and 2.
2015_09_22 Agron Selimaj added new section: "Create a mirror inside your corporate network"
2015_12_04 Paul Blackburn updated references to Mageia 4 to Mageia 5
2015_12_04 Paul Blackburn moved Agron's "create mirror" to appendix-1. Should probably be a separate wiki page.
2015_12_15 Agron Selimaj Turned appendix-1 into a new wiki page. Content of Appendix-1 now has a link to the actual wiki page.
2022_07_30 Paul Blackburn updated example tcptraceroute results for 2022

Appendix-1: Agron's "Create a mirror inside your corporate network"

If you have multiple Mageia desktops/laptops and servers, you might benefit from creating a private local Mageia mirror inside your corporate network.

Create a mirror inside your corporate network