From Mageia wiki
Jump to: navigation, search

Introduction

This page describes how to identify a Mageia Linux rsync server and directory 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

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.

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.

$ 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.

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	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 (eg 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 (eg 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 (eg 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.

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