Saltar al contenido
56K

56K

Slow IT Notes – Just 4 Fun

Menú
Menú

Crear un paquete RPM desde cero

Publicada el 17/10/202113/01/2025 por fanta

En la anterior entrada se habló de como podemos gestionar notas desde el terminal. Una forma rápida y organizada de tomar notas mediante un sencillo script en bash.

Ese script se encuentra en el repositorio git siguiente: git.56k.es/fanta/n

Ese script es el que vamos a utilizar como ejemplo para crear un paquete RPM.

 

Instalar las dependencias sobre RHEL 7

# yum install gcc git tree rpm-build rpm-devel rpmlint make python bash coreutils diffutils patch rpmdevtools -y

Una vez instaladas vamos a crear un usuario llamado rpm. Ese usuario es el que vamos a utilizar para crear los paquetes RPM.

 

Creación de un usuario en el sistema

Creamos el usuario así:

# adduser -m rpm

Ponemos una password a ese usuario y accedemos como user rpm así:

# passwd rpm
# su - rpm

 

Creamos una estructura de directorios para construir los RPMs

Con el comando rpmdev-setuptree vamos a crear la estructura de directorios.

$ rpmdev-setuptree

Creará un directorio llamado rpmbuild dentro de /home/rpm/ . Y dentro del directorio rpmbuild los siguientes directorios:

 

 

BUILD – El directorio donde van a parar todos los archivos que se crean durante la compilación del paquete.
RPMS – El directorio en el que se creará el archivo RPM final si todo va bien.
SOURCES – El directorio en el que se coloca el archivo tar.gz de origen. El archivo que contiene lo que queremos desplegar en el paquete final.
SPECS – En este directorio metemos los archivos specs. Un archivo de «specs» es básicamente un conjunto de instrucciones sobre cómo construir el paquete.
SRPMS – Contiene el source de los diferentes RPMs que generemos.

Vamos a meter el contenido en SOURCES

En el directorio SOURCES vamos a crear un archivo tar.gz con el contenido de nuestro programa. En este caso ese programa se llama «n».

$ cd SOURCES/
$ git clone http://git.56k.es/fanta/n n-fanta-0.0.1
$ rm -rf n-fanta-0.0.1/.git/
$ tar cfvz n-fanta-0.0.1.tar.gz n-fanta-0.0.1/
$ rm -rf n-fanta-0.0.1
$ cd ..

El proceso es sencillo. Hemos entrado al directorio SOURCES y hemos clonado el código del repositorio «n» con el nombre n-fanta-0.0.1
Luego hemos borrado el directorio .git de dentro del directorio «n-fanta-0.0.1» para no generar un archivo tar.gz con ese contenido en su interior.

Finalmente hemos creado un archivo llamado n-fanta-0.0.1.tar.gz y hemos borrado el directorio n-fanta-0.0.1

 

Creación del archivo de especificaciones

Ahora vamos a entrar en el directorio SPECS para construir el archivo de especificación del paquete RPM.

Esto se hace con el comando rpmdev-newspec para tener una plantilla de ejemplo:

$ rpmdev-newspec

Eso creará un archivo llamado newpackage.spec  por defecto. Si le indicamos el nombre del paquete que queremos crear mejor que mejor.
En mi caso voy a crearlo con un nombre que me permita identificar que se trata de un paquete mio.

$ rpmdev-newspec n-fanta

 

Y en el interior del archivo me cargo todo para dejar un archivo spec como este:

%define debug_package %{nil}

Name: n-fanta
Version: 0.0.1
Release: %{version}_%{?dist}
Summary: n note manager
Group: Miscellaneous
License: GPL Version 3
URL: http://git.56k.es/fanta/n
Source0: n-fanta-0.0.1.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch

%description
n de notas es un script que permite rápidamente tomar notas y categorizarlas.

%prep

%setup -q

%build

%install
mkdir -p $RPM_BUILD_ROOT/usr/bin/
cp -r ./n $RPM_BUILD_ROOT/usr/bin/n

%clean
rm -rf $RPM_BUILD_ROOT

%files
/usr/bin/n

%defattr(-,root,root,-)

En la sección %install creamos un directorio /usr/bin/ y copiamos allí el archivo n del tar.gz
En la sección %files indicamos donde queremos que se copie el archivo.

 

Construir el paquete RPM

El paquete RPM se puede construir así:

$ rpmbuild -ba /home/rpm/rpmbuild/SPECS/n-fanta.spec

Eso generará un archivo RPM en la siguiente ruta:

/home/rpm/rpmbuild/RPMS/noarch/n-fanta-0.0.1-0.0.1_.el7_9.noarch.rpm

Instalar el paquete RPM

Como root podemos instalar el paquete rpm en nuestro sistema.

# rpm -iv /home/rpm/rpmbuild/RPMS/noarch/n-fanta-0.0.1-0.0.1_.el7_9.noarch.rpm

 

Desinstalar el paquete RPM

Y desinstalar para ver si se borra el archivo de /usr/bin/n

# rpm -ev n-fanta

 

Y eso es todo. Es un ejemplo sencillo de creación de un RPM

Saludos cordiales.


fanta

Escrito por Fanta

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

fanta de naranja
Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
💾 QEMU
💾 SOLARIS
💾 ESXi
💾 FREEBSD
💾 DEBIAN
💾 AMIGA
💾 SYSADMIN
💾 JUNOS
💾 IMPRIMIR
💾 MSDOS
💾 WINDOWS
💾 FAIRPHONE
💾 GAMING
💾 STREAMING
💾 REDHAT
💾 GRÁFICOS
💾 CACHARROS
💾 SONIDO
💾 NETWORKING
💾 ROCKY
💾 SUSE
💾 TMP
©2025 56K | Construido utilizando WordPress y Responsive Blogily tema por Superb