.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.