28 sept 2012

Descargar un RPM con YUM y extraer el contenido de un RPM o .SRC.RPM

A veces por diversos motivos deseamos descargar un rpm y no instalarlo, quiza para llevarselo a un amigo que no tenga conexion a internet y llevando las dependencias podemos actualizarle el kernel, no?.



Entonces, supongamos que deseamos descargar el kernel en un pendrive ya insertado, los pasos a seguir serian estos:

# yumdownloader --destdir /dev/sdc1/amigo/ kernel

NOTA: Si bien en el prompt se ve #, no es necesario hacerlo como root, yo lo hice asi porque luego iba a compilar y demas cosas, pero no es necesario que las descargas las realicen asi.

Suponiendo que nuestro pendrive es sdc y kernel el paquete que deseamos bajar. Esto nos bajara el .rpm en ese destino, listo para ser instalado en cualquier PC.

Ahora bien, muchos, como yo, usan custom kernel, pero a su vez, los kernel tanto de Fedora como de RHEL, poseen parches interesantes, que no son visibles en el caso de RHEL por estar ofuscados.

Asi que si deseamos bajar el source del kernel y compilar al modo RPM, hacemos:

# yumdownloader --source kernel

Eso nos bajará el .src.rpm del kernel, listo para compilar.

Ahora bien, si son como yo, que les gusta hacerlo con make, nada de rpmbuild, editar los .config y tocar todo, nos toca luego convertir ese .src.rpm a un source 100%.

Hacemos esto:

rpm2cpio kernel-2.6.32-el6.src.rpm | cpio -idmv

Eso dejara en el directorio donde estemos, el contenido completo del .src.rpm, asi que por ejemplo, al momento de hacer este post, tengo un linux-2.6.32-279.9.1.el6.tar.bz2, que es el kernel de RHEL con sus parches, listo para descomprimir y compilar a la antigua.

Esto tambien es aplicable a los .rpm, no solo a los .src.rpm

Saludos!

2 comentarios:

  1. Me gustaría comentar que no hace falta usar el yumdownloader como root... digo, por lo del "#" en el prompt jeje :)

    ResponderEliminar
    Respuestas
    1. Si lo se, pasa que como se trataba de kernel y compilacion... hice todo como root, ahora lo modifico y aclaro!

      Eliminar

Dejá tu comentario