RPM (Administrador de paquetes de RedHat) es un sistema de gestión de paquetes para sistemas basados en RHEL. Es posible que haya visto que todos los paquetes en los sistemas basados en Redhat tienen la extensión .rpm . Este tutorial lo ayudará a crear RPM para su propio script
Había creado una secuencia de comandos para realizar una copia de seguridad de la base de datos. Hoy he creado un archivo RPM de esa secuencia de comandos. Este es mi primer RPM creado. A continuación se muestran los pasos que sigo para hacerlo.
Paso 1:instalar los paquetes necesarios
En primer lugar, debe instalar los paquetes necesarios en su sistema para crear archivos rpm.
$ yum install rpm-build rpmdevtools
Paso 2:crear una estructura de directorio
Vaya al directorio de inicio de los usuarios y cree la estructura de directorio requerida usando el siguiente comando.
$ rpmdev-setuptree
El comando anterior creará una estructura de directorios como la siguiente.
$ ls -l rpmbuild drwxr-xr-x 2 root root 6 Oct 25 03:09 BUILD drwxr-xr-x 2 root root 6 Oct 25 03:09 RPMS drwxr-xr-x 2 root root 6 Oct 25 03:09 SOURCES drwxr-xr-x 2 root root 6 Oct 25 03:09 SPECS drwxr-xr-x 2 root root 6 Oct 25 03:09 SRPMS
En caso de rpmdev-setuptree el comando no pudo crear la estructura, puede crearla manualmente
$ mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS,tmp}
Paso 3:crear un archivo rpmmacro
Ahora cree el archivo ~/.rpmmacros, con los siguientes contenidos. Cambiar los valores de los nombres resaltados en rojo
~/.rpmmacros
%packagerYOUR_NAME %_topdir %(echo $HOME)/rpmbuild %_smp_mflags %( \ [ -z "$RPM_BUILD_NCPUS" ] \\\ && RPM_BUILD_NCPUS="`/usr/bin/nproc 2>/dev/null || \\\ /usr/bin/getconf _NPROCESSORS_ONLN`"; \\\ if [ "$RPM_BUILD_NCPUS" -gt 16 ]; then \\\ echo "-j16"; \\\ elif [ "$RPM_BUILD_NCPUS" -gt 3 ]; then \\\ echo "-j$RPM_BUILD_NCPUS"; \\\ else \\\ echo "-j3"; \\\ fi ) %__arch_install_post \ [ "%{buildarch}" = "noarch" ] || QA_CHECK_RPATHS=1 ; \ case "${QA_CHECK_RPATHS:-}" in [1yY]*) /usr/lib/rpm/check-rpaths ;; esac \ /usr/lib/rpm/check-buildroot
Paso 4:copiar archivos en el directorio SOURCES
Copie todos sus archivos y carpetas de scripts dentro de ~/rpmbuild/SOURCES directorio, que necesitamos agregar en el archivo rpm. Para este tutorial, he usado todos los archivos creados en nuestro tutorial Advance Bash Script for MySQL.
$ cd ~/rpmbuild/SOURCES $ ls -l mydumpadmin-1 -rw-r--r-- 1 root root 125 Oct 25 03:54 credentials.txt -rw-r--r-- 1 root root 4693 Oct 25 03:54 mysql-dump.sh -rw-r--r-- 1 root root 1008 Oct 25 03:54 README.md -rw-r--r-- 1 root root 3445 Oct 25 03:54 settings.conf
Cree un tarball de su código.
$ tar czf mydumpadmin-1.0.tar.gz mydumpadmin-1
Paso 5:crear un archivo SPEC
Cree un archivo de especificaciones ~/rpmbuild/SPECS/mydumpadmin.spec usando el contenido a continuación.
~/rpmbuild/SPECS/mydumpadmin.spec
Name: mydumpadmin Version: 1 Release: 0 Summary: An Advance Bash Script for MySQL Database Backup Group: TecAdmin BuildArch: noarch License: GPL URL: https://github.com/tecrahul/mydumpadmin.git Source0: mydumpadmin-1.0.tar.gz %description Write some description about your package here %prep %setup -q %build %install install -m 0755 -d $RPM_BUILD_ROOT/etc/mydumpadmin install -m 0600 credentials.txt $RPM_BUILD_ROOT/etc/mydumpadmin/credentials.txt install -m 0755 mysql-dump.sh $RPM_BUILD_ROOT/etc/mydumpadmin/mysql-dump.sh install -m 0644 README.md $RPM_BUILD_ROOT/etc/mydumpadmin/README.md install -m 0644 settings.conf $RPM_BUILD_ROOT/etc/mydumpadmin/settings.conf %files /etc/mydumpadmin /etc/mydumpadmin/credentials.txt /etc/mydumpadmin/mysql-dump.sh /etc/mydumpadmin/README.md /etc/mydumpadmin/settings.conf %changelog * Tue Oct 24 2017 Rahul Kumar1.0.0 - Initial rpm release
Cambie el nombre del paquete, la ruta del script, el nombre del archivo, la descripción, etc., según sus requisitos.
Paso 6:construir RPM
Después de completar los pasos anteriores, construyamos su rpm ejecutando el siguiente comando.
$ cd ~/rpmbuild $ rpmbuild -ba SPECS/mydumpadmin.spec
Después de compilar correctamente, se creará un archivo rpm como ~/rpmbuild/RPMS/noarch/mydumpadmin-1-0.noarch.rpm
Instale su rpm usando el siguiente comando. Después de verificar la instalación, los archivos se instalaron correctamente en la ubicación definida.
$ rpm -ivh mydumpadmin-1-0.noarch.rpm
Gracias por usar este artículo. Espero que los pasos anteriores te ayuden a crear tu propio rpm.