GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo crear RPM para su propio script en CentOS/RedHat

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

%packager YOUR_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 Kumar  1.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.


Cent OS
  1. Cómo restablecer su contraseña raíz de MySQL en CentOS 6

  2. Cómo crear un archivo Kickstart para CentOS/Fedora/RedHat (RHEL)

  3. Cómo configurar el repositorio YUM en Linux/Centos/Redhat | YUM en Linux/Centos/Redhat

  4. Cómo instalar Ntopng en CentOS 6

  5. Cómo instalar Habari en CentOS 7

Cómo crear tu primer programa Java en CentOS 8

Cómo crear un usuario Sudo en CentOS

Cómo instalar MariaDB en CentOS 6

Cómo instalar MariaDB en CentOS 7

Cómo instalar Moodle en CentOS 7

Cómo instalar HHVM en CentOS 6