Creacion de un paquete RPM

De Departamento de Informatica
Saltar a: navegación, buscar

Contenido

En construcción

Aqui comenzarán los aportes del grupo Kaos_and_Zer0s

Contenido

Definición

RPM (Red Hat Package Manager) es un sistema gestor de paquetes creado en origen para la distribución Red Hat aunque puede ser usada bajo cualquier otra distribución Linux y UNIX. Permite diferenciar etapas de construcción de software, así como almacenar en una BD interna los archivos copiados al sistema, sus permisos y su destino, con el fin de poder removerlos limpiamente.

  • Además permite generar las dependencias entre paquetes.
  • Permite la instalación de secciones de un paquete.
  • El formato utiliza compresión.
  • Es un estandar en deployment.

Estructura

La estructura (Arbol) para construir un instalador consta de 1 carpeta maestra, rpmbuild, con 5 carpetas en su interior:

  • SPECS: Carpeta Crítica/Inicial, contiene el o los archivos SPEC
  • SOURCES : Carpeta Crítica/Inicial, contiene el o las fuentes del programa a instalar.
  • BUILD: Descomprime y Compila las fuentes.
  • RPMS: Almacena el resultado final, un instalador RPM.
  • SRPMS: Almacena el resultado intermedio, un Source RPM. Con esto se puede portar la instalación a otras arquitecturas.

A lo anterior se le suma en tiempo de construcción BUILDROOT, en donde se aplican las instrucciones después de descomprimir/compilar. A la misma \ altura" de rpmbuild se genera .rpmmacros, para almacenar variables globales y llaves GPG.

Construyendo RPM

Requerimientos

Antes de comenzar con la creacion del RPM, se requiere instalar los siguientes paquetes:

dnf install rpm-build rpmdevtools kernel-devel rpmlint
 rpm-build trae el binario (programa, software) rpmbuild
 rpmdevtools trae rpmdev-* (Nos interesa rpmdev-setuptree)(Opcional)
 kernel-devel provee librerias necesarias
 rpmlint permite detectar errores en el rpm generado.

Atencion

La construcción de un paquete rpm debe ser en un usuario normal.

 [root@ip247 ~]# man useradd
 [root@ip247 ~]# useradd -U rpm
 [root@ip247 ~]# passwd rpm 

Construcción

Comprimir programa

  • Genere los programas a empaquetar (en este caso sera hello.c)
  • Introduzca los programas dentro de un comprimido tar.gz
Mkdir kaos_and_zer0s-0.1
Mv hello.c kaos_and_zer0s-0.1
Tar czvf kaos_and_zer0s-0.1.tar.gz hello.c

Crear RPM

Ahora como usuario local rpm:

  • Crear la estructura de directorios de su RPM ejecutando:
 rpmdev-setuptree
  • Mover el archivo comprimido tar.gz a la carpeta SOURCES
 mv kaos_and_zer0s-0.1.tar.gz rpmbuild/SOURCES
  • Entrar a la carpeta SPEC y crear un archivo .spec, el siguiente comando generará una plantilla
rpmdev-newspec kaosandzer0s
  • La plantilla deberia verse de la siguiente forma
Name:		
Version:	
Release:	1%{?dist}
Summary:	
Group:		
License:	
URL:		
Source0:	
BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

BuildRequires:	
Requires:	

%description

%prep
%setup -q

%build
%configure
make %{?_smp_mflags}

%install
rm -rf %{buildroot}
make install DESTDIR=%{buildroot}

%clean
rm -rf %{buildroot}

%files
%defattr(-,root,root,-)
%doc

%changelog
  • Posteriormente se darán detalles de su secciones.
Herramientas personales
Espacios de nombres
Variantes
Acciones
Navegación
Herramientas