La nueva versión de RPM 4.17 fue liberada hace poco y en esta nueva versión se han realizado diversas correcciones que mejoran a este administrador de paquetes, ya que por ejemplo se han mejorado el manejo de fallas, la interfaz para crear macros en lenguaje Lua, nuevos complementos y más.
El proyecto RPM4 es desarrollado por Red Hat y se utiliza en distribuciones como RHEL (incluidos proyectos derivados de CentOS, Scientific Linux, AsiaLinux, Red Flag Linux, Oracle Linux), Fedora, SUSE, openSUSE, ALT Linux, OpenMandriva, Mageia, PCLinuxOS, Tizen y muchos otros.
Anteriormente, un equipo de desarrollo independiente desarrolló el proyecto RPM5 , que no está directamente relacionado con RPM4 y actualmente está abandonado (no se ha actualizado desde 2010).
Un paquete RPM puede contener un conjunto arbitrario de archivos. La mayoría de los archivos RPM son «binary RPM» (o BRPM) que contienen la versión compilada de algún software. También hay «source RPM» (o SRPM) que contienen el código fuente utilizado para construir un paquete binario.
Los SRPM normalmente llevan la extensión de archivo «.src.rpm» (.spm en sistemas de archivos limitados a 3 caracteres de extensión, por ejemplo, DOS FAT antiguas).
Entre las características de RPM están:
- Los paquetes pueden ser cifrados y verificados con GPG y MD5.
- Los archivos de código fuente (por ejemplo .tar.gz, .tar.bz2) están incluidos en SRPMs, posibilitando una verificación posterior.
- PatchRPMs y DeltaRPMs, que son equivalentes a ficheros parche, pueden actualizar incrementalmente los paquetes RPM instalados.
- Las dependencias pueden ser resueltas automáticamente por el gestor de paquetes.
Principales novedades de RPM 4.17
En esta nueva versión que se presenta de RPM 4.17 se destaca que se ha mejorado enormemente el manejo de fallas durante la instalación, además de que tambien se ha mejorado la interfaz para crear macros en lenguaje Lua.
Por la parte de las mejoras que se presentan en los complementos se destaca que se añadieron los complementos dbus -nouncer para informar transacciones de RPM a través de D-Bus, fapolicyd para definir las políticas de acceso a archivos y el complemento fs-verity para verificar la autenticidad de archivos individuales utilizando el mecanismo fs-verity integrado en el kernel.
En buildroot, de forma predeterminada, se aplicó una regla para eliminar archivos «.la» y se agregó una regla para borrar el bit ejecutable de los archivos de la biblioteca compartida.
Además de tambien se destaca que se han realizado trabajos para mejorar algunos aspectos internos, como por ejemplo que las páginas de manual se han convertido al formato Markdown, se han limpiado los scripts desatendidos, se eliminaron los backends criptográficos de beecrypt y NSS y que tambien se proporciona un borrador inicial de la guía de empaquetado y administración de paquetes
Por otra parte se menciona que se ha eliminado el backend DBD para almacenar datos en Berkeley DB (para compatibilidad con sistemas más antiguos, el backend BDB_RO se deja en modo de solo lectura). Sqlite se utiliza como base de datos predeterminada y que los controladores de ayuda de Python y los generadores de paquetes se separan en un proyecto separado.
De los demás cambios que se destacan de esta nueva versión:
- Se agregó la macro incorporada% {exist: …} para verificar la existencia del archivo.
- Se han ampliado las capacidades de la API para procesar transacciones.
- Se ha unificado la sintaxis de las macros integradas y definidas por el usuario, así como el formato para llamarlas (% foo arg,% {foo arg} y% {foo: arg} ahora son equivalentes).
- Se agregó soporte para firmas digitales EdDSA.
- Las utilidades para extraer Debuginfo están separadas en un proyecto separado.
- Se corrigió la lectura de regresión rpm v3 y otros paquetes
- Muchas traducciones nuevas y mejoradas
- Se corrigieron los argumentos de macros paramétricos definidos por cli.
- Corrección en el código de error faltante en –eval si falla la escritura de la salida estándar
- Corregir los permisos de archivo solicitados por la API no respetados
- Corregir la invalidación innecesaria de la caché de la base de datos
- Agregar soporte para el sistema operativo Darwin
Finalmente si estás interesado en poder conocer más al respecto de esta nueva versión, puedes consultar los detalles en el siguiente enlace.