¿Qué viene después del guión bajo en una cadena de versión RPM?

2

Tengo conflictos de dependencia cuando intento ejecutar un simple yum update. Noté que, en algunos casos, está buscando un paquete llamado foo w.x-y.z.el6mientras el repositorio solo tiene foo w.x-y.z.el6_a.b, donde a.bhay algo como "2.1" o "2.9". La especificación para los nombres de archivo RPM no menciona este bit de subrayado: ¿qué significa?

Coderer
fuente

Respuestas:

5

vonbrand lo tiene todo correcto.

En su ejemplo, la versión wx-yzel6_a.b significa que el número de versión anterior es wx y la versión de su distribución local (generalmente un parche o número de compilación) es yzel6_a.b

Esto es distinto de la versión wx-yzel6, que es la misma versión anterior (wx), pero una versión de distribución local diferente (yzel6). No son la misma versión.

En cuanto a la diferencia entre yzel6 y yzel6_a.b, eso dependería de la sintaxis específica de la sección, que depende completamente de cómo la persona / grupo que hace el paquete numera internamente sus versiones. Para los paquetes de Red Hat, el cambio que está observando generalmente se refiere a una compilación diferente dentro de un único nivel de parche. El código fuente puede ser idéntico para las dos versiones, pero se compilan con diferentes versiones de RHEL6 (por ejemplo, 6.3 frente a 6.4). Pueden depender de diferentes versiones de glibc u otras bibliotecas compartidas.

Por ejemplo, una actualización que acabo de aplicar reemplazó cups-1.4.2-48.el6_3.3.x86_64.rpm con cups-1.4.2-50.el6_4.4.x86_64.rpm. Ambas son versiones de cups versión 1.4.2. Según tengo entendido la convención de Red Hat, el paquete se ha actualizado del nivel de parche 48 a 50, y ahora está construido contra RHEL 6.4 (vs. 6.3). No estoy seguro de lo que significa el ".4" vs ".3" final. Tengo algunos paquetes donde la versión termina en "el6", algunos que terminan en "el6_3", algunos en "el6_4", algunos en "el6_4 .1 ", algunos en" el6_4.4 ", etc. Por supuesto, dado que todos estos números de versión son específicos de la distribución, necesitaría encontrar algún tipo de documento de Red Hat para estar seguro.

En resumen, para su ejemplo, estos dos paquetes son parches / compilaciones diferentes de la misma versión fuente ascendente, pero el significado específico más allá de eso requerirá preguntar a la fuente del paquete.

David C.
fuente
1

El nombre del paquete RPM es <name> - <version> - <localrelease>. <arch> .rpm El <name> es el nombre del paquete (puede muy bien ser algo así como funky-gui-devel-libs, el '-' s las cosas de separación se cuentan desde el final), <versión> es la versión ascendente (no '-'!), <localrelease> es una versión local (puede haber varias rondas de parches en la misma base ascendente, generalmente incluye el sistema de destino), <archivo> es la arquitectura. El guión bajo es solo un separador que no es un '-' aquí.

vonbrand
fuente
Entonces, en mi ejemplo, ¿toda la cadena y.z.el6_a.bes <localrelease>? En ese caso, no esperaría que la parte final ( _a.b) impactara el cálculo de la versión, pero parece importar ...
Coderer el