Si eres parte de los usuarios que normalmente tienen una buena conexión a Internet y actualiza directamente de los repositorios de Arch Linux, este artículo no es para ti, sino para aquellos que tienen limitantes en cuanto a ancho de banda.
Como ejemplo pongo mi caso. La conexión a Internet en horario laboral es mucho más lenta que en las noches (cuando todos duermen) como es lógico. Lo que hago es ir a El Palacio Central de Computación, donde hay mejor ancho de banda y se actualizan varios repositorios, y copio el mirror de Arch.
De esta forma, ya solo tengo que actualizar en las noches los paquetes que van entrando poco a poco, que es mucho mejor que bajar 45GB de golpe. pero claro ¿Cómo actualizo?
Pues básicamente hay dos formas muy fáciles de hacerlo, ambas publicadas en la Wiki de Arch Linux.
Usando Rsync
Si tenemos dominio de Rsync, podemos crearnos nuestro propio script que incluya o excluya determinados paquetes a la hora de copiar un mirror de Arch Linux. Si lo quieres más fácil, solo tienes que usar este script:
#!/bin/bash ################################################################################################# ### It is generally frowned upon to create a local mirror due the bandwidth that is required. ### One of the alternatives will likely fulfill your needs. ### REMEMBER: ### * Bandwidth is not free for the mirrors. They must pay for all the data they serve you ### => This still applies although you pay your ISP ### => There are many packages that will be downloaded that you will likely never use ### => Mirror operators will much prefer you to download only the packages you need ### * Really please look at the alternatives on this page: ### https://wiki.archlinux.org/index.php?title=Local_Mirror ### If you are ABSOLUTELY CERTAIN that a local mirror is the only sensible solution, then this ### script will get you on your way to creating it. ################################################################################################# # Configuration SOURCE='rsync://mirror.example.com/archlinux' DEST='/home/usuario/archlinux' BW_LIMIT='500' REPOS='core extra' RSYNC_OPTS="-rtlHq --delete-after --delay-updates --copy-links --safe-links --max-delete=1000 --bwlimit=${BW_LIMIT} --delete-excluded --exclude=.* --log-file=/home/usuario/archlinux/archlinux.log" LCK_FLE='/var/run/repo-sync.lck' # Make sure only 1 instance runs if [ -e "$LCK_FLE" ] ; then OTHER_PID=`/bin/cat $LCK_FLE` echo "Another instance already running: $OTHER_PID" exit 1 fi echo $$ > "$LCK_FLE" for REPO in $REPOS ; do echo "Syncing $REPO" /usr/bin/rsync $RSYNC_OPTS ${SOURCE}/${REPO} ${DEST} done # Cleanup /bin/rm -f "$LCK_FLE" exit 0
Acá lo único que tenemos que modificar son las variables:
SOURCE='rsync://mirror.example.com/archlinux' DEST='/home/usuario/archlinux'
Pues tenemos que poner de cual mirror queremos conectarnos y en que carpeta se va a copiar.
Usando LFTP
Si no podemos usar Rsync, ya sea porque el HP del Administrador de nuestro ISP lo tenga bloqueado, o por otro motivo, siempre está la segunda opción, en este caso lftp.
En la Wiki de Arch tenemos este script:
#!/usr/bin/lftp -f lcd /local/path/to/your/mirror open ftp.archlinux.org (or whatever your favorite mirror is) # Use 'cd' to change into the proper directory on the mirror, if necessary. mirror -cve -x '.*i686.*' core & mirror -cve -x '.*i686.*' extra & mirror -cve -x '.*i686.*' community & mirror -cve -x '.*i686.*' multilib & lcd pool cd pool mirror -cve -x '.*i686.*' community & mirror -cve -x '.*i686.*' packages &
Aunque particularmente cuando uso LFTP, tengo otra variante. Lo que hago es poner en un archivo.txt lo siguiente:
lftp -e "mirror --delete --only-newer /archlinux/extra/os/x86_64/ /home/usuario/archlinux/extra/os/x86_64/" http://mirror.us.leaseweb.net/ lftp -e "mirror --delete --only-newer /archlinux/community/os/x86_64/ /home/usuario/archlinux/community/os/x86_64/" http://mirror.us.leaseweb.net/ lftp -e "mirror --delete --only-newer /archlinux/multilib-staging/os/x86_64/ /home/usuario/archlinux/multilib-staging/os/x86_64/" http://mirror.us.leaseweb.net/ lftp -e "mirror --delete --only-newer /archlinux/core/os/x86_64/ /home/usuario/archlinux/core/os/x86_64/" http://mirror.us.leaseweb.net/ lftp -e "mirror --delete --only-newer /archlinux/extra/os/i686/ /home/usuario/archlinux/extra/os/i686/" http://mirror.us.leaseweb.net/ lftp -e "mirror --delete --only-newer /archlinux/community/os/i686/ /home/usuario/archlinux/community/os/i686/" http://mirror.us.leaseweb.net/ lftp -e "mirror --delete --only-newer /archlinux/multilib-staging/os/i686/ /home/usuario/archlinux/multilib-staging/os/i686/" http://mirror.us.leaseweb.net/ lftp -e "mirror --delete --only-newer /archlinux/core/os/i686/ /home/usuario/archlinux/core/os/i686/" http://mirror.us.leaseweb.net/
Y ejecuto:
lftp -f /ruta/archivo.txt
Y así es como actualizo mis repositorios locales…
21 comentarios, deja el tuyo
Muy util y practico.
Muy bueno la verdad, siempre me he preguntado cómo se realizaba esta tarea pero nunca me digné en averiguar cómo se hacía, ojalá y publiques cómo apuntar el actualizador de repositorios al disco loca, gracias.
pacman.conf
[arch]
Siglevel = PackageRequired
Server = file:///mnt/repo/arch
Uff, sabía que se me quedaba algo.
Hace un tiempo también me vi en la necesidad de realizar esto porque tenia que reinstalar todo mi sistema Archlinux y no queria descargar todo gnome y aplicaciones de nuevo ya que tengo conexion limitada. No se si se puede dejar otro sitio aqui pero por si a alguien le interesa http://www.kr105.shekalug.org/2011/10/16/crear-un-repositorio-local-en-archlinux/ 🙂
¿Cuantos GB pesa el repositorio completo de ArchLinux ?
algo por los 40GB, lo que quisiera saber es solo podemos copiar los paquetes para 64bits y descartar i686
Arch… (suspiro) Algun día cuando tenga mi propia compu provare instalarlo.
Me gustaría que hubiese una versión LTS de Arch, y usar el AUR como backport.
pues no se .. quizas en el planerta de los simios sea posible
Como me di cuenta que no hay, entonces, me dedicaré a sacarle el jugo a Slackware y a aprender más acerca de OpenBSD.
Jaja eso sería todo lo contrario a lo que representa Arch.
En mi caso, por lo general, siempre encuentro el paquete que busco, ya sea en el repo oficial, o en AUR, aunque cuando no es así, mi repo personal nunca me falla.
Al parecer, Elav se ha contagiado del virus Arch+versionitis 😛
Wow, así que el browser de Steam usa WebKit 😮
*Jugando Portal desde mi Arch*
elav ya que estan posteando arto de arch podrias hacer un post para dejar bonito KDE, ojala y fuera sin paquetes de AUR…
Para poner bonito a KDE no se necesitan los AUR, solo kde-look.org y devianart.com para encontrar buenos temas para Plasma, Aurorae, QtCurve, Iconos… y demás. De todos modos, lo anoto en mi ToDo.
Hola. Llevo un mes visitando este blog, y este es mi primer comentario.
Para Debian y los repositorios del estilo, como Ubuntu, etc, existe un paquete: debmirror. Una vez instalado, hay que configurarlo indicando los repositorios, arquitectura, etc que se quieran sincronizar. Debmirror es un script en perl que utiliza rsync.
Hace años fui profesor de un módulo de informática, en el que entre otras cosas tenía que enseñar a instalar un sistema operativo. Mi elección Debian. Usábamos el CD netinst. Como había que descargar todos los paquetes por cada alumno, eran 20, y la conexión a internet era mala, aquello no iba bien. En un primer momento utilicé un proxy, pero no mejoró mucho. Así que decidí instalar un pequeño servidor donde instalé los repositorios que utilizaba. De esta manera la instalación iba fluida, incluso picos de 100 Mbit/s, lo que daba la red. Los alumnos tenían que indicar que los repositorios estaban en el servidor del aula y accedían a él por FTP. Los repositorios de Debian Lenny ocupaban algo más de 20 GB y los sincronizaba dos veces a la semana, lunes y jueves a las 2:00 AM.
Saúdos,
Muy buena guia. Es cierto que al principio Arch parece complicado en demasia pero gracias a guias como estas no hay nada imposible.
gracias
Hola .. mi problema tambien es la velocidad de internet ..pero uso ubuntu ..puedo hacer lo mismo pero para ubuntu?
Gracias
Gracias Elav nosotros por aca tambien estamos quemaos con el rsync, gracias por mostrarnos una alternativa, salu2 desde santiago