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