Introducción al uso de la herramienta de compilación de paquetes rpm rpmbuild

rpmbuildes una herramienta de línea de comandos para crear paquetes RPM (Red Hat Package Manager). RPM es un formato estándar para instalar y administrar software en sistemas Linux. rpmbuild puede empaquetar código fuente o archivos binarios en paquetes RPM y configurar metadatos, dependencias, listas de archivos, etc. para ellos. rpmbuild está disponible en varias distribuciones de Linux como Red Hat, CentOS, Fedora, SUSE, Mageia, etc. Es una de las herramientas principales del proceso de construcción de RPM y los administradores y desarrolladores de sistemas la utilizan a menudo. La siguiente es una introducción al proceso de creación de paquetes rpm:

1. proceso de producción de paquetes rpm

1. Herramientas de instalación

# 编译工具
yum install -y gcc make

# rpm 包工作目录生成工具
yum install -y rpmdevtools

# rpm 包构建工具
yum install -y rpm-build

2. Cree un directorio de trabajo

2.1 Creación manual

mkdir -p ~/rpmbuild/{
    
    BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}

2.2 Creación de compilación rpmdevtools
Este comando generará un directorio rpmbuild, que es el entorno para crear paquetes rpm. Cabe señalar que este comando /rootsolo efecto cuando el directorio rpmbuild exista y el directorio rpmbuild no se volverá a crear.

cd /root/
rpmdev-setuptree

cd rpmbuild && ls
BUILD  RPMS  SOURCES  SPECS  SRPMS

El propósito general de cada directorio se describe brevemente a continuación:

  • CONSTRUIR directorio temporal para compilar paquetes rpm
  • BUILDROOT El directorio de instalación temporal del software generado después de la compilación.
  • El directorio donde se encuentra el paquete rpm instalable finalmente generado por RPMS.
  • SOURCES Directorio donde se almacenan todo el código fuente y los archivos de parche.
  • Directorio SPECS donde se almacenan los archivos SPEC (importante)
  • La ruta de almacenamiento del formato de código fuente rpm final del software SRPMS

3. Preparación antes de realizar el paquete rpm.

3.1 Copie el paquete de código fuente o el código fuente al directorio SOURCES y compile el archivo binario del código fuente

Cuando el almacén existe, MakeFile compila el archivo binario mediante make y lo escribe cuando no existe.

3.2 Escriba el script de compilación.
Para escribir el script de especificaciones, consulte: https://blog.csdn.net/yuelai_217/article/details/130722081
y copie el script de especificaciones en el directorio SPECS.

4.Hacer paquete

rpmbuild -ba SPECS/xxx.spec

5. Verificación de la instalación

rpm -ivh xxx.rpm

2. comandos comunes de rpmbuild

2.1 formato básico rpmbuild

rpmbuild [options] [spec文档|tarball包|源码包]

rpmbuild -ba nginx.spec

2.2 Usar opciones de compilación de archivos de especificaciones

Opciones significado
-pb El lugar en el archivo antes de la ejecución de la instalación.
-antes de Cristo Ejecute las secciones %pre y %build de la especificación (preparar y compilar)
-bi Ejecute %pre, %build y %install en la especificación (preparar, compilar e instalar)
-licenciado en Derecho Verifique la sección %file en la especificación (verifique si el archivo está completo)
-licenciado en Letras Crear código fuente y paquetes binarios (de uso común)
-cama y desayuno Cree solo paquetes binarios (de uso común)
-bs Crear solo paquetes de código fuente

2.3 Creación de paquete tarball, similar a la especificación

Construir usando tarball fuente

rpmbuild -tb xxx.zip 
Opciones significado
-tp Corresponde a -pb
-tc Corresponde a -bc
-de Corresponde a -bi
-frente a Corresponde a -ba
-tuberculosis Corresponde a -bb
-ts Corresponde a -bs

2.4 Crear desde el paquete fuente

Opciones significado
-reconstruir Para crear un paquete binario, pase -bb
–buildroot=DIRECTORIO Asegúrese de crear el paquete en el directorio raíz
-limpio Una vez completado el empaquetado, borre el directorio de archivos en CONSTRUIR
–no construir Sin fase de %construcción
–nodos No verifique los archivos asociados al crear un paquete
–rmfuente Borrar FUENTES después de completar el embalaje
–rmspec Borrar SPEC después de completar el embalaje
–objetivo=CPU-VENDEDOR-OS Determinar la plataforma de uso final del paquete.

Documentación de referencia

1. https://www.shuzhiduo.com/A/D854Dy825E/

2, https://blog.51cto.com/pencild/1532569

3, https://www.cnblogs.com/Tzyyviki/p/14710479.html

Supongo que te gusta

Origin blog.csdn.net/yuelai_217/article/details/130741234
Recomendado
Clasificación