Mirrors (Español)

From ArchWiki
Revision as of 15:58, 4 December 2012 by Pedro (Talk | contribs) (Estados Uniddos States)

Jump to: navigation, search
Sumario help replacing me
Este artículo trata sobre la actualización y gestión de los paquetes con los mirrors
Relacionado
Mirroring
pacman (Español)
Reflector

Esta guía esta orientada a ayudarle a seleccionar y configurar los mejores mirrors para su equipo, y mostrarle un listado de los mirrors actuales disponibles.

Habilitar un mirror especifico

Para habilitar los mirrors, edite el archivo /etc/pacman.d/mirrorlist y localice la región geográfica más cercana a su ubicación. Descomente los mirrors que desee utilizar.

Nota: El ancho de banda disponible en archlinux.org está limitado a 50KB/s

Ejemplo:

# Any
# Server = ftp://mirrors.kernel.org/archlinux/$repo/os/$arch
Server = http://mirrors.kernel.org/archlinux/$repo/os/$arch

Véanse las herramientas #Mirror status y #List by speed para obtener ayuda sobre cómo escoger los mejores mirrors.

Tip: Descomente sus 5 mirrors preferidos y ubíquelos al inicio de la lista de mirrors. De esa forma tendrán prioridad dentro de la lista de mirrors. También hace mas fácil la inclusión de actualizaciones de la lista del mirrorlist.

También es posible especificar mirrors directamente en el archivo /etc/pacman.conf. Para el repositorio [core] la configuración predifinida es:

[core]
Include = /etc/pacman.d/mirrorlist

Para utilizar el mirror HostEurope como el mirror predeterminado, hay que agregar su dirección antes de la linea Include:

[core]
Server = ftp://ftp.hosteurope.de/mirror/ftp.archlinux.org/core/os/i686
Include = /etc/pacman.d/mirrorlist

Ahora pacman tratara de conectarse primero a este mirror. El mismo procedimiento es válido para [testing], [extra] y [community].

Nota: Si los mirrors fueron especificados manualmente en el archivo pacman.conf, recuerde también utilizar el mismo mirror para todos los repositorios. De otra forma, puede que paquetes que son incompatibles entre sí sean instalados, como linux desde [core] y un modulo viejo del kernel desde [extra].

Mirror status

Puede verificar el estatus de los Mirrors y su nivel de actualización visitando http://www.archlinux.de/?page=MirrorStatus o http://www.archlinux.org/mirrors/status/.

Puede generar una lista de mirrors nueva y actualizada desde aquí, y automatizar el proceso con un script, o puede instalar Reflector, una herramienta que puede generar mirrors utilizando la lista de Mirrorcheck; también se puede verificar el nivel de actualización de los mirrors de la siguiente forma:

  1. elija un server y navegue por «extra/os/»;
  2. acceda a http://www.archlinux.org/ en otro navegador o pestaña del navegador; y,
  3. compare la última fecha de modificación del directorio i686 del mirror con la fecha del mirror en la página principal de ArchLinux, en el área de Package Repositories a la derecha.

Clasificar y seleccionar los mirrors

Si no utiliza reflector, que tiene la habilidad de clasificar los mirrors por ambos criterios: por velocidad de descarga y por última fecha de actualización, siga esta demostración de cómo clasificar los mirrors manualmente.

Listado por velocidad

Puede sacar provecho de utilizar el mirror local mas rápido, y esto puede ser determinado por el script de bash, /usr/bin/rankmirrors.

Utilice la orden cdpara moverse al directorio /etc/pacman.d:

# cd /etc/pacman.d

Respalde el existente /etc/pacman.d/mirrorlist:

# cp mirrorlist mirrorlist.backup

Edite el archivo mirrorlist.backup y descomente los mirrors que van a ser probados con rankmirrrors:

# nano mirrorlist.backup

Opcionalmente, puede utilizar la siguiente línea sed para descomentar (y probar) todos los mirrors:

# sed '/^#\S/ s|#||' -i mirrorlist.backup

Finalmente, clasifique los mirrors. El parámetro -n 6 significa que dejará habilitados solo los 6 mirrors con mejor respuesta:

# rankmirrors -n 6 mirrorlist.backup > mirrorlist

Fuerce a pacman para actualizar la lista de paquetes. Después de crear/editar el archivo /etc/pacman.d/mirrorlist, (manualmente o utilizando rankmirrors) ejecute la siguiente orden:

# pacman -Syy
Tip: Pasar dos flags --refresh o -y fuerzan a pacman a refrescar todas las listas de paquetes incluso si se considera que ya están actualizados. Ejecutar pacman -Syy cada vez que cambie un mirror es una buena práctica para evitar posibles problemas.

Listado combinado por velocidad y estatus

No es una buena idea utilizar solo los mirrrors solo por el más rápido, dado a que posiblemente el mirror mas rápido para su zona puede estar desactualizado. La forma predilecta es #Listado por velocidad, luego ordenar esos mirrors por #Mirror status.

Simplemente visite uno o los dos links de #Mirror status y ordénelos primero por los que están más actualizados. Luego, mueva los más actualizados al principio del archivo de configuración /etc/pacman.d/mirrorlist y los mirrors que estén muy desactualizados simplemente no los utilize; repita el proceso hasta que elimine los mirrors mas desactualizados. Continue este proceso hasta que queden solo 6 mirrors que estén ordenados por velocidad de descarga y por nivel de actualización, dejando fuera los mirrors desactualizados o lentos.

Si se presentan problemas con los mirrors, se deben repetir los pasos de más arriba. O repetirlos, incluso, cada tanto, aunque no se estén experimentando problemas con los mirrors, para mantener un archivo /etc/pacman.d/mirrorlist actualizado.

Script de shell para automatizar el uso de Pacman Mirrorlist Generator

Puede usar el siguiente script de shell para actualizar los propios mirrors en base a las clasificaciones ya mencionadas. Si no vive en los Estados Unidos, puede cambiar la variable del país (country).

updatemirrors.sh
#!/bin/sh

[ "$UID" != 0 ] && su=sudo

country='US'
url="http://www.archlinux.org/mirrorlist/?country=$country&protocol=ftp&protocol=http&ip_version=4&use_mirror_status=on"

tmpfile=$(mktemp --suffix=-mirrorlist)

# Get latest mirror list and save to tmpfile
wget -qO- "$url" | sed 's/^#Server/Server/g' > "$tmpfile"

# Backup and replace current mirrorlist file (if new file is non-zero)
if [ -s "$tmpfile" ]
then
  { echo " Backing up the original mirrorlist..."
    $su mv -i /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.orig; } &&
  { echo " Rotating the new list into place..."
    $su mv -i "$tmpfile" /etc/pacman.d/mirrorlist; }
else
  echo " Unable to update, could not download list."
fi

# allow global read access (required for non-root yaourt execution)
chmod +r /etc/pacman.d/mirrorlist
Nota: Va a tener que copiar este texto, crear con su contenido un archivo, y ejecutar chmod +x sobre dicho archivo. Si no ha efectuado el acceso como root, el script invocará la orden sudo cuando necesite rotar el nuevo archivo mirrorlist en su lugar.

Usar reflector

Como alternativa, es posible utilizar Reflector para recuperar los últimos mirrorlist de la página MirrorStatus, filtrar los mirror más actualizados, ordenarlos en base a la velocidad y sobreescribir el archivo /etc/pacman.d/mirrorlist.

Mirrors oficiales

La lista oficial de mirrors de pacman se puede obtener del paquete pacman-mirrorlist. Para obtener una lista de mirrors aun más actualizada puede consultar la pagina de [https://www.archlinux.org/mirrorlist/ Pacman Mirrorlist Generator en la página principal. En el muy improbable escenario de que no tenga un mirrorlist configurado o pacman-mirrorlist no este instalado, escriba:

# wget -O /etc/pacman.d/mirrorlist http://www.archlinux.org/mirrorlist/all/

Asegúrese de descomentar los mirrors preferidos como se mencionó más arriba y luego ejecute:

# pacman -Syy
# pacman -S --force pacman-mirrorlist

Si desea que su mirror sea incluido en la lista oficial, puede hacer una solicitud. Mientras tanto, puede agregarlo a la lista de #Mirrors no oficiales al final de esta página.

Si obtiene un error diciendo que la variable $arch es utilizada pero no definida, agregue lo siguiente al archivo de configuración /etc/pacman.conf:

 Architecture = x86_64
Nota: También puede agregar las variables auto y i686 para Architecture.

IPv6-ready mirrors

Pacman mirror list generator puede ser usado para generar una lista de mirrors IPv6.

Mirrors no oficiales

Estos mirrors no están listados en el archivo de configuración /etc/pacman.d/mirrorlist.

Global

TOR Network

Singapur

Bulgaria

Vietnam

FPT TELECOM

China

CHINA TELECOM

CHINA UNICOM

Cernet

Francia

Alemania

Indonesia

Kazakhstan

Lituania

Malasia

Nueva Zelanda

Polonia

Rusia

Sudáfrica

Estados Unidos

Solución de problemas

Mirrors fuera de sincronización: paquetes corruptos/archivo no encontrado

Los problemas con mirrors fuera de sincronización fueron ya apuntados en este post, por lo que, probablemente, ya fue solucionado para la mayoría de los usuarios, pero en el caso de que este evento se presente de nuevo, trate de verificar si los paquetes se encuentran en el repositorio [testing].

Después de sincronizar con pacman -Sy, utilize esta orden:

# pacman -Ud $(pacman -Sup | tail -n +2 | sed -e 's,/\(core\|extra\)/,/testing/,' \
                                              -e 's,/\(community\)/,/\1-testing/,')

Hacer esto ayudara en cualquier ocasión, cuando los paquetes en un mirror no hayan sido sincronizados en [core/extra], y residan ahora en [testing]. Es perfectamente seguro instalar desde [testing] en el caso de que los paquetes sean coincidentes por versión y fecha de liberación. En cualquier caso, es mejor cambiar los mirrors y sincronizar con pacman -Syy, que recurrir a un repositorio. De cualquier modo puede suceder que uno o todos los mirrors, en algún grado, estén fuera de sincronización.

Utilizar todos los mirrors

Para emular el comportamiento de pacman -Su, para que revise toda la lista de mirrors, utilize el siguiente scrpit:

~/bin/pacup
#!/bin/bash

# Pacman will not exit on the first error. Comment the line below to
# try from [testing] directly.
pacman -Su "$@" && exit

while read -r pkg; do
  if pacman -Ud "$pkg"; then
    continue
  else
    while read -r mirror; do
      pacman -Ud $(sed "s,.*\(/\(community-\)*testing/os/\(i686\|x86_64\)/\),$mirror\1," <<<"$pkg") &&
      break
    done < <(sed -ne 's,^ *Server *= *\|/$repo/os/\(i686\|x86_64\).*,,gp' \
           </etc/pacman.d/mirrorlist | tail -n +2 )
  fi
done < <(pacman -Sup | tail -n +2 | sed -e 's,/\(core\|extra\)/,/testing/,' \
                                        -e 's,/\(community\)/,/\1-testing/,')

Véase también

  • MirUp – pacman mirrorlist downloader/checker