Cómo crear un RPMs

Imagen de Epe

He visto que muchas personas necesitan de alguna configuración especial en algún paquete de nuestro linux CentOS y lo que hacen es sencillamente acudir al sitio donde ofrecen el tar.gz, lo bajan, compilan e instalan.

al instalar desde fuentes (tar.gz) se está logrando quizá el objetivo de tener un paquete como te gusta, pero perderás la información de instalación del paquete.. esto es.. y cuando necesites desinstalarlo cómo harás? Borrarlo simplemente no es fácil pues a veces un paquete se instala en decenas de directorios lo que hará que te quede información aún cuando pienses que todo lo borrastes.

Esta información, quizá bibiotecas de funciones, afectarán el funcionamiento del nuevo sistema, en fin, habrás armado un bonito relajo.

Ni hablar de actualizar, cómo actualizas 100 servidores con un nuevo tar.gz? Tendrás que hacer una buena labor manual para lograrlo.

Este fue uno de los grandes logros del rpm, antes no existía un sistema que te permitiera de forma rapida y efectiva borrar, instalar o actualizar un paquete, además de que permitía resolver dependencias que se necesitaban para funcionar.

Es por eso que no instalo nada que no sea de rpm, si no la hay, me la invento...

He pasado mucho trabajo aprendiendo a compilar mis rpms... en realidad te daré sólo alguns trucos, no porque no quiera dartelos todos, es que requiere de paciencia entender el cómo crear cada rpm y puede ser diferente en cada caso.. pero te daré características generales.

Para comenzar estudiemos cómo se organiza un src.rpm (SRPM) en nuestro servidor.

Un src.rpm que tengas en tu máquina, lo puedes desempaquetar en varias partes. Le llamaré: abrir.

Al abrir un src.rpm todo se copiará hacia diversos directorios de /usr/src/redhat, fundamentalmente:

SOURCES/ : Es el directorio dentro de /usr/src/redhat que contendrá el tar.gz conque se compilará el SRC.RPM

SPECS/ : Es el directorio que tendrá la configuración conque se compilará y otra información sobre cómo crear el paquete.

BUILD/ : Es un directorio que se usa temporalmente para abrir el paquete y aplicar la configuración y compilar el binario.

RPMS/ : Aquí irá el resultado de la compilación, aquí tendríamos el rpm cuando ya se compile.

SRPMS/ : Aquí irá el src.rpm resultante de la compilación. No tiene por qué ser igual que el src.rpm original, puesto que puede que al compilar nosotros hayamos, a propósito, cambiado algún parámetro de compilación o algún tar.gz de los SOURCES. Es el archivo que hay que guardar para posteriores compilaciones.

Los más interesantes de momento son los contenidos de SPECS y de SOURCES.

Comentarios

como desinstalar paquetes instalados sin rpm

Imagen de acl

si para instalar un paquete, digamos foo-0.1.tar.gz hiciste esto:


# tar xzf foo-0.1.tar.gz
# cd foo-0.1/
# ./configure
# make
# make install

puedes desintalarlo dando


# make uninstall

Dentro del *mismo* directorio que usaste para dar el make install. Claro, esto depende de que no hayas borrado el directorio con el que compilaste e instalaste.

Solo para dar la contraria ;)

Ya hablando en serio, tambien recomiendo mantenerse utilizando el manejador de paquetes de tu distribucion para instalar software. Te hace la vida mas facil a la final.

instalarás lo mismo en 100

Imagen de Epe

instalarás lo mismo en 100 servidores a la vez?

cómo lo distribuirás a los 100 servidores a la vez? por yum?

Todo parece fácil, cuando lo vemos desde un punto de vista clientelar nuestro, pero no para el verdadero uso de los rpm.

Cuando tengas que actualizar, actualizarás via yum para los 100 servidores? Y cuando tenga un cambio en el camino de una biblioteca? borrarás ese viejo camino manualmente?

Saludos
epe
--
EcuaLinux.com
Ecuador: +(593) 9 9246504, +(593) 2 3412402
USA: +1 404 795 0321, España: +34 917617884


Saludos
epe

EcuaLinux.com

+(593) 9 9924 6504

Servicios en Software Libre

Exacto, rpm tiene toda una

Imagen de acl

Exacto, rpm tiene toda una infraestructura a su alrededor que nos hace la vida mas facil. Todos los conflictos entre versiones de una biblioteca, parches, distribucion a diferentes arquitecturas, y muchas cosas mas, ya fueron solucionadas por otros usando rpm. Y encima, nos lo dan sin restriccion. Vale la pena aprender a sacarle el jugo.

La creacion e instalacion de rpms es solo la punta del iceberg de lo que puedes hacer. Hay un libro (por los mismo creadores de rpm, RedHat Inc.) "Maximum RPM" que esta libremente disponible, y aunque ya esta un poco viejito, tiene montones de informacion al respecto.

Cierto, por aquí lo

Imagen de Epe

Cierto, por aquí lo tuve.... ese libro no parecía malo. Y se encuentra en internet, entiendo que redhat lo publicó para que pueda ser leído, del mismo redhat lo bajé.

Saludos
epe
--
EcuaLinux.com
Ecuador: +(593) 9 9246504, +(593) 2 3412402
USA: +1 404 795 0321, España: +34 917617884


Saludos
epe

EcuaLinux.com

+(593) 9 9924 6504

Servicios en Software Libre