Product SiteDocumentation Site

5.8.6. Lista de espejos y metalink

Las opciones de configuración mirrorlist y metalink están relacionadas entre sí en yum Fedora y esta sección ofrecerá una revisión de sus respectivos funcionamientos por separado así como su relación.
La configuración del repositorio fedora de caja contiene la siguiente directiva mirrorlist:
...
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&
arch=$basearch
...
Utilizando el remplazo de variables correspondiente, $releasever=f13 y $basearch=x86_64, por ejemplo, y utilizando un explorador web para descargar, se puede obtener el siguiente documento xml.
<?xml version="1.0" encoding="utf-8"?>
<metalink version="3.0" xmlns="http://www.metalinker.org/" type="dynamic" pubdate="Sat, 21 Aug 2010 14:10:47 GMT" generator="mirrormanager" xmlns:mm0="http://fedorahosted.org/mirrormanager">
  <files>
    <file name="repomd.xml">
      <mm0:timestamp>1274247846</mm0:timestamp>
      <size>4400</size>
      <verification>
        <hash type="md5">fa0f764c57ba5b15be4e188efe9d8494</hash>
        <hash type="sha1">c83b44fb1ccf030b7b81ae9bf34572d714ab4e1a</hash>
        <hash type="sha256">7b00cc2cf43ff34baedcc16c389a015f2aad5e35f725708b5afef56bdb1e13f6</hash>
        <hash type="sha512">2d1f5bcde26213d9ead4b5847501f9315d9391b73eabdd56dd1b45e6307ccd46b4d218c2bcf750364449fba25f0f0bb6305b61716c134bfdcabd0db4e4ba1c45</hash>
      </verification>
      <resources maxconnections="1">
        <url protocol="http" type="http" location="BR" preference="100" >http://fedora.c3sl.ufpr.br/linux/releases/13/Everything/x86_64/os/repodata/repomd.xml</url>
        <url protocol="ftp" type="ftp" location="BR" preference="100" >ftp://fedora.c3sl.ufpr.br/fedora-enchilada/linux/releases/13/Everything/x86_64/os/repodata/repomd.xml</url>
        <url protocol="rsync" type="rsync" location="BR" preference="100" >rsync://fedora.c3sl.ufpr.br/fedora/linux/releases/13/Everything/x86_64/os/repodata/repomd.xml</url>
        <url protocol="http" type="http" location="BR" preference="99" >http://mirror.ispbrasil.com.br/fedora/releases/13/Everything/x86_64/os/repodata/repomd.xml</url>
        <url protocol="http" type="http" location="BR" preference="98" >http://fedora.pop.com.br/linux/releases/13/Everything/x86_64/os/repodata/repomd.xml</url>
        <url protocol="http" type="http" location="CR" preference="97" >http://mirrors.ucr.ac.cr/fedora/releases/13/Everything/x86_64/os/repodata/repomd.xml</url>
      </resources>
    </file>
  </files>
</metalink>
En este caso es visible que no se trata simplemente de una lista de baseurls. Las definiciones de ambas opciones de configuración se explicitan abajo.
mirrorlist
Especifica el URL a un archivo que contiene una lista de baseurls. Puede utilizar en sustitución o como complemento a la opción baseurl. Se pueden usar variables con esta opción.
metalink
Especifica un URL a un archivo metalink que dirige a un archivo repomd.xml, se genera una lista de espejos para el repositorio convirtiendo los espejos del archivo repomd.xml a baseurl. El archivo metalink también contiene la marca de tiempo de los datos en repomd.xml, la longitud y suma de verificación de repomd.xml. Los datos son verificados versus el archivo repomd.xml descargado y toda la información proveniente del archivo metalink debe hacer coincidencia. metalink puede ser utilizado como sustituto o complemento de baseurl. Se pueden usar variables con esta directiva. Esta opción deshabilita la opción mirrorlist.
Pero además en ambas secciones de la documentación se hace mención a un hack especial acerca de que el URL de mirrorlist contenga la palabra "metalink" y entonces el valor de mirrorlist es copiado a metalink (si metalink no está definido). Fedora por omisión usa este hack, esta es su relación.
En general la configuración de caja de Fedora debería siempre ofrecer la mejor familia de repositorios disponibles cercanos a la instalación del usuario, note que arriba toda la lista proviene de Brasil y el usuario es de Venezuela, y en Venezuela no hay ningún espejo Fedora. En mirrormanager de Fedora se utiliza información geográfica y de ahí este listado.
Sin embargo, por ejemplo, Brasil no está mejor conectado a Venezuela que Venezuela con EEUU. De ahí que los venezolanos prefieren usar los espejos en EEUU por razones de velocidad. Si se usa el plugin yum-fastest-mirror, esta extensión sólo usa la lista de baseurls calculados para escoger el repositorio, entonces, nunca se utilizará otros repositorios diferentes a los Brasileros, solución, hackear y reconfigurar mirrorlist y/o metalink.
Una opción es simplemente colocar una lista de repositorios especificando varios baseurl, pero cuáles son. ¿Hay forma de automatizar? Por supuesto también interesa que los repositorios estén sincronizados con los fuentes.
mirrorlist_expire
Especifica el tiempo en segundos después del cual la lista local de espejos en cache expira. Si la lista local es más antigua a esta tiempo, yum descargará una nueva lista.