yum-presto: mejorando la velocidad de yum

La mayoría de las distribuciones actuales de Linux incorporan sistemas de instalación, actualización y eliminación automática de paquetes, los que facilitan mucho la administración. El más conocido es sin duda apt, usado por Debian y derivados (incluyendo los *Ubuntu). Pero existen otros, como urpmi (usado por Mandriva), emerge (en Gentoo), etc.

Los usuarios de RedHat/Fedora/CentOS contamos con una herramienta que cumple con este mismo objetivo, llamada yum. Sin embargo, dicha herramienta ha sido muy criticada por los usuarios de otras distribuciones, principalmente debido a su velocidad. Especialmente en versiones antiguas de yum, una actualización rutinaria podía fácilmente demorar horas.

Afortunadamente, se han hecho grandes avances para mejorar el rendimiento de yum y, en las versiones actuales (por ejemplo, la incluida en Fedora Core 6), los algoritmos de resolución de dependencias y manejo de caché son muchísimo más eficientes, permitiendo una mejora substancial en la velocidad de la aplicación. Pero persistía un problema: las actualizaciones de paquetes de gran tamaño seguían demorando debido al tiempo usado en la descarga de los archivos.

Un ejemplo: en mi sistema estaba instalado el paquete kernel-2.6.20-1.2933.fc6. Pero ayer apareció en los repositorios de Fedora una nueva versión, la 2.6.20-1.2944. Lo normal sería que yum descargara el nuevo paquete completo (unos 16 MiB), aunque las diferencias seguramente son pocas.

Es ahí donde entra en juego un nuevo plugin para yum llamado presto. Este plugin permite que yum descargue sólo las diferencias entre el nuevo paquete y la versión ya instalada en el sistema, reduciendo dramáticamente el tamaño de las descargas. Todo gracias al uso de deltarpm.

Para usar este plugin, basta con instalarlo desde los repositorios oficiales de Fedora (un simple yum install yum-presto es suficiente) y luego agregar una línea del tipo deltaurl=direccion_del_repositorio en los archivos de configuración de los repositorios de yum, tal como se indica en el sitio oficial de presto.

A continuación, una muestra de las mejoras obtenidas usando presto:

[christian@cgonzalez-laptop ~]$ sudo yum update
(... varias líneas con mensajes de yum ...)
Dependencies Resolved

=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
kernel * i686 2.6.20-1.2944.fc6 updates 2.9 M
kernel-devel * i686 2.6.20-1.2944.fc6 updates 898 k
Updating:
kernel-headers * i386 2.6.20-1.2944.fc6 updates 107 k
xine-lib * i386 1.1.5-1.fc6 extras 430 k
xine-lib-devel i386 1.1.5-1.fc6 extras 282 k
xine-lib-extras i386 1.1.5-1.fc6 extras 82 k
xine-lib-extras-nonfree i386 1.1.5-1.lvn6 livna 528 k
Installing for dependencies:
libcaca i386 0.99-0.1.beta11.fc6 extras 160 k

Transaction Summary
=============================================================================
Install 3 Package(s)
Update 5 Package(s)
Remove 0 Package(s)

Total download size: 5.3 M
Downloading Packages:
Downloading DeltaRPMs:
(1/4): kernel-devel-2.6.2 100% |=========================| 898 kB 00:08
(2/4): xine-lib-1.1.5_1.1 100% |=========================| 430 kB 00:03
(3/4): kernel-headers-2.6 100% |=========================| 107 kB 00:01
(4/4): kernel-2.6.20_2.6. 100% |=========================| 2.9 MB 00:30
Rebuilding rpms from deltarpms
Downloading RPMs:
(1/4): libcaca-0.99-0.1.b 100% |=========================| 160 kB 00:02
(2/4): xine-lib-devel-1.1 100% |=========================| 282 kB 00:04
(3/4): xine-lib-extras-1. 100% |=========================| 82 kB 00:01
(4/4): xine-lib-extras-no 100% |=========================| 528 kB 00:05
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Updating : xine-lib ####################### [ 1/13]
Installing: libcaca ####################### [ 2/13]
Installing: kernel-devel ####################### [ 3/13]
Updating : xine-lib-devel ####################### [ 4/13]
Updating : xine-lib-extras ####################### [ 5/13]
Updating : kernel-headers ####################### [ 6/13]
Installing: kernel ####################### [ 7/13]
Updating : xine-lib-extras-nonfree ####################### [ 8/13]
Cleanup : xine-lib-devel ####################### [ 9/13]
Cleanup : xine-lib ####################### [10/13]
Cleanup : xine-lib-extras ####################### [11/13]
Cleanup : kernel-headers ####################### [12/13]
Cleanup : xine-lib-extras-nonfree ####################### [13/13]
Size of all updates downloaded from Presto-enabled repositories: 4.6M
Size of updates that would have been downloaded if Presto wasn't enabled: 24M
This is a savings of 81 percent
(... más mensajes de yum ...)
Complete!
[christian@cgonzalez-laptop ~]$


Como se observa, yum sólo tuvo que descargar 4.6 MiB en paquetes RPM. Si no hubiera usado presto, la descarga habría requerido 24 MiB. Es decir, un ahorro cercano al 81%. Y además, el tiempo de descarga se redujo a unos pocos minutos. Nada mal, ¿verdad?

Aún son pocos los repositorios que ofrecen compatibilidad con presto, pero es seguro que pronto empezarán a aumentar, a medida que el uso de este nuevo plugin se masifique.

(NOTA: Para más información acerca del manejo de paquetes en Linux, puedes leer mi manual.)

Comentarios

Fredy dijo…
amigo....por lo que veo sos un duro de linux...asi que necesito tu ayuda por favor......cuando termine de instalar mi fedora7 y la instalacion reinicio mi pc cargo el gub normal/ pero cuando voy a ingresar al fedora me salio un mensaje de out of range...me imagino que es el monitor o la targeta integrada (VIA/S3G unichrome PRO IGP) en todo caso como puedo configuar mi monitor (CRT 17") para que pueda cargar fedora normalmente???? y si las lineas las escribo en el grub o donde me sale el mensaje de bienvenido??????muchas gracias
fregon82@hotmail.com
@fredy:

Te recomiendo que te inscribas en http://www.forosdelweb.com y publiques tu pregunta en la sección "BSD y Linux". Allí habrá muchos (entre los que me incluyo) que podrán ayudarte con tu problema.

Entradas más populares de este blog

Replicando el funcionamiento de "Antorcha" con herramientas públicamente disponibles

Actualizar información de zona horaria en Java

Una nueva amiga: Ibanez Artcore AFS75T