Red Hat Training

A Red Hat training course is available for RHEL 8

3.4. Comprobación de los RPM para la sanidad

Después de crear un paquete, compruebe la calidad del mismo.

La principal herramienta para comprobar la calidad de los paquetes es rpmlint.

La herramienta rpmlint hace lo siguiente:

  • Mejora la capacidad de mantenimiento de las RPM.
  • Permite la comprobación de la sanidad realizando un análisis estático del RPM.
  • Activa la comprobación de errores realizando un análisis estático del RPM.

La herramienta rpmlint puede comprobar los RPM binarios, los RPM fuente (SRPM) y los archivos SPEC, por lo que es útil para todas las etapas del empaquetado, como se muestra en los siguientes ejemplos.

Tenga en cuenta que rpmlint tiene unas directrices muy estrictas, por lo que a veces es aceptable saltarse algunos de sus errores y advertencias, como se muestra en los siguientes ejemplos.

Nota

En los siguientes ejemplos, rpmlint se ejecuta sin ninguna opción, lo que produce una salida no verbosa. Para obtener explicaciones detalladas de cada error o advertencia, puede ejecutar rpmlint -i en su lugar.

3.4.1. Comprobando la cordura de Bello

Esta sección muestra las posibles advertencias y errores que pueden producirse al comprobar la sanidad del RPM en el ejemplo del archivo SPEC de bello y el RPM binario de bello.

3.4.1.1. Comprobación del archivo bello SPEC

Ejemplo 3.2. Resultado de la ejecución del comando rpmlint en el archivo SPEC para bello

$ rpmlint bello.spec
bello.spec: W: invalid-url Source0: https://www.example.com/bello/releases/bello-0.1.tar.gz HTTP Error 404: Not Found
0 packages and 1 specfiles checked; 0 errors, 1 warnings.

En el caso de bello.spec, sólo hay una advertencia, que dice que la URL indicada en la directiva Source0 es inalcanzable. Esto es esperado, porque la URL example.com especificada no existe. Suponiendo que esperamos que esta URL funcione en el futuro, podemos ignorar esta advertencia.

Ejemplo 3.3. Resultado de la ejecución del comando rpmlint en el SRPM para bello

$ rpmlint ~/rpmbuild/SRPMS/bello-0.1-1.el8.src.rpm
bello.src: W: invalid-url URL: https://www.example.com/bello HTTP Error 404: Not Found
bello.src: W: invalid-url Source0: https://www.example.com/bello/releases/bello-0.1.tar.gz HTTP Error 404: Not Found
1 packages and 0 specfiles checked; 0 errors, 2 warnings.

Para el bello SRPM, hay una nueva advertencia, que dice que la URL especificada en la directiva URL es inalcanzable. Asumiendo que el enlace funcionará en el futuro, podemos ignorar esta advertencia.

3.4.1.2. Comprobación del RPM binario de bello

Al comprobar los RPM binarios, rpmlint comprueba los siguientes elementos:

  • Documentación
  • Páginas del manual
  • Uso coherente del estándar de la jerarquía del sistema de archivos

Ejemplo 3.4. Resultado de la ejecución del comando rpmlint en el RPM binario de bello

$ rpmlint ~/rpmbuild/RPMS/noarch/bello-0.1-1.el8.noarch.rpm
bello.noarch: W: invalid-url URL: https://www.example.com/bello HTTP Error 404: Not Found
bello.noarch: W: no-documentation
bello.noarch: W: no-manual-page-for-binary bello
1 packages and 0 specfiles checked; 0 errors, 3 warnings.

Las advertencias de no-documentation y no-manual-page-for-binary dicen que el RPM no tiene documentación o páginas de manual, porque no proporcionamos ninguna. Aparte de las advertencias anteriores, el RPM pasó las comprobaciones de rpmlint.