GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo crear un paquete RPM a partir de un Tarball

RPM , originalmente un Administrador de paquetes de Red Hat , es un sistema de gestión de paquetes gratuito y de código abierto creado para su uso en Red Hat Linux. Sin embargo, RPM se usa en muchas distribuciones de Linux como CentOS , Fedora , Oracle Linux . Un paquete RPM viene con una extensión .rpm .

A veces puede acceder a los archivos de código fuente, pero es posible que no tenga un paquete RPM disponible para instalar en su sistema. En este escenario, puede compilar el código fuente e instalar una aplicación, o crear un paquete RPM a partir del código fuente y usar un archivo RPM para instalar la aplicación en su sistema.

En este artículo, vamos a aprender cómo crear paquetes RPM a partir del código fuente de una aplicación.

Instalar paquete rpm-build

Para crear paquetes rpm, debe instalar rpmbuild paquete con el siguiente comando.

$ sudo yum install rpm-build

Después de la instalación, verifique la versión de rpmbuild usando el siguiente comando:

$ sudo rpmbuild --version

Obtendrá un resultado similar a:

Crear estructura de directorio

Es posible que deba crear los directorios necesarios para que rpmbuild mantenga su archivo fuente en el directorio correcto antes de que rpmbuild se queje de directorios faltantes; es mejor crear estos directorios manualmente.

$ sudo mkdir {~/rpmbuild,~/rpmbuild/BUILD,~/rpmbuild/BUILDROOT,~/rpmbuild/RPMS,~/rpmbuild/SOURCES,~/rpmbuild/SPECS,~/rpmbuild/SRPMS}

Puede verificar la estructura del directorio usando el comando de árbol.

$ tree rpmbuild/

Descargar archivo tar de origen

Ahora deberá descargar el archivo de código fuente para el paquete que desea crear un archivo rpm. Los pasos son similares a la construcción de RPM para cualquier otra aplicación. Necesitas obtener el código fuente de la aplicación para RPM que vas a construir.

Vaya a "FUENTES ” y descargue el código fuente de la aplicación. En este ejemplo, voy a crear mi propia muestra para generar un archivo rpm.

$ cd rpmbuild/SOURCES
$ sudo wget https://github.com/apache/httpd/archive/2.4.28.tar.gz%20-O%20httpd-2..4.28.tar.gz

Crear el archivo SPEC

En las ESPECIFICACIONES Se definen el archivo, las instrucciones y la información requerida para construir un paquete rpm. UNA ESPECIFICACIÓN archivo tiene la extensión de archivo .spec y contiene dependencias de compilación y dependencias de tiempo de ejecución. Las dependencias de compilación son el software necesario para compilar el programa que queremos crear un paquete RPM y las dependencias de compilación son las bibliotecas necesarias para que el programa se ejecute correctamente.

Un archivo SPEC se compone de dos secciones de macros y son Preámbulo y Cuerpo . En estas secciones de macros, se pueden definir diferentes instrucciones.

El preámbulo puede contener las siguientes instrucciones:

Name: Name of the package
Version: Version of the package
URL: The URL of the application
Release: Release version of the package
License: License used for the package
Requires: Dependencies needed to run the software

El cuerpo contiene las siguientes instrucciones:

%description: Description of the software package
%prep: Command needed to prepare source code.
%files: List of the files received from the package

Ahora, cree un archivo SPEC y guárdelo en el directorio rpmbuild/SPECS . En este ejemplo, he creado un test-application.spec archivo de muestra para crear una prueba-aplicación-1.0 paquete rpm.

$ cd rpmbuild
$ cd SPECS
$ sudo vi test-application.spec

Pegue los siguientes contenidos y modifíquelos según sus requisitos.

Name: test-application
Version: 1.0                                                          
Release: 1%{?dist} 
Summary: Test application script
Group: Miscellaneous   
License: License text
Source0: test-application-1.0.tar.gz 
BuildArch: noarch                                                          
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%description
This is test application
%prep
%setup -q
%build
# %configure                       
# make %{?_smp_mflags}               
%install
rm -rf $RPM_BUILD_ROOT
# make install DESTDIR=$RPM_BUILD_ROOT    
install -d -m 0755 $RPM_BUILD_ROOT/opt/test-application
install -m 0755 HelloWorld.sh $RPM_BUILD_ROOT/opt/test-application/test-application-1.0.sh
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root,-)
# %doc
/opt/test-application/test-application-1.0.sh
%changelog

Guarde el archivo y salga.

Cree e instale un paquete RPM

Una vez que SPEC creado el archivo, cree el paquete rpm con rpmbuild comando.

$ sudo rpmbuild -ba rpmbuild/SPECS/test-application.spec

Suponiendo que no haya encontrado ningún error, los archivos rpm se crearán en RPMS/noarch directorio listo para la instalación. Para instalar el archivo RPM creado, ejecute el siguiente comando.

$ rpm -ivh rpmbuild/RPMS/noarch/test-application-1.0-1.el7.noarch.rpm

Ahora, para verificar la instalación de RPM, ejecute el siguiente comando.

$ rpm -qa | grep test-application-1.0

Para desinstalar el paquete RPM, ejecute el siguiente comando:

$ yum remove <rpm-package-name>

En este ejemplo, he eliminado test-application-1.0 paquete como:

$ sudo yum remove test-application-1.0-1.el7.noarch
Conclusión

En este artículo, ha aprendido cómo crear paquetes RPM usando tarball. Además, tiene una idea sobre la creación de archivos SPEC, la instalación de paquetes RPM y la eliminación de paquetes RPM instalados.


Linux
  1. Cómo empaquetar aplicaciones de Python para Linux

  2. Cómo crear un paquete RPM de Linux

  3. Cómo desinstalar neovim de Ubuntu

  4. Cómo desinstalar los complementos de rhythmbox de Ubuntu

  5. Cómo desinstalar Steam de Ubuntu

Cómo instalar RPM en CentOS

Cómo crear un montaje a partir de imágenes en Linux

Cómo crear directorios desde un archivo de texto en Linux

Cómo crear una caja vagabunda a partir de una caja existente

Cómo crear un video a partir de imágenes en Linux

¿Cómo crear un paquete en WHM?