¿Cómo determina RPM el paquete más nuevo?

2

Tomé el Apache httpd 2.2.3 SRPM y extraje el archivo .spec. A partir de esto, reemplacé 2.2.3 con 2.2.14 y eliminé la Serialetiqueta del archivo de especificaciones (como me rpmbuildquejé de la etiqueta Serial, supongo que esto ha quedado en desuso). Descargué el httpd tarball y construí ( rpmbuild) sin errores (para mi sorpresa).

Al ejecutar rpm --upgrade<newrpms> recibí un error de que mis nuevos RPM no eran versiones más nuevas, aunque la Versionetiqueta es claramente posterior. ReleaseSin embargo, puse el 1.

He intentado buscar en Google para descubrir cómo rpmdetermina cuál es la versión más nueva (sin suerte). De los rpm -qicomandos tengo lo siguiente para la instalación predeterminada 2.2.3:

Nombre: reubicaciones httpd: (no reubicable)
Versión: 2.2.3 Vendedor: CentOS
Fecha de lanzamiento: 31.el5.centos Fecha de construcción: jue 03 sep 2009 10:43:06 PM BST
Fecha de instalación: lunes 26 de octubre de 2009 10:27:12 GMT Build Host: builder16.centos.org
Grupo: Entorno del sistema / Daemons Source RPM: httpd-2.2.3-31.el5.centos.src.rpm
Tamaño: 3254910 Licencia: Licencia de software Apache
Firma: DSA / SHA1, dom 20 de septiembre de 2009 04:53:42 AM BST, ID de clave a8a447dce8562897
URL: http://httpd.apache.org/
Resumen: servidor HTTP Apache

De mi compilación 2.2.14 tengo:

Nombre: reubicaciones httpd: (no reubicable)
Versión: 2.2.14 Proveedor: Apache Software Foundation
Fecha de lanzamiento: 1 Fecha de compilación: Lun 16 Nov 2009 11:40:41 GMT DEL P.M.
Fecha de instalación: lun 16 nov 2009 11:44:38 GMT Build Host: build01.local
Grupo: Entorno del sistema / Daemons RPM de origen: httpd-2.2.14-1.src.rpm
Tamaño: 5101686 Licencia: Licencia Apache, Versión 2.0
Firma: (ninguna)
URL: http://httpd.apache.org/
Resumen: servidor HTTP Apache

Entonces la pregunta es: ¿cómo rpmdetermina cuál es el RPM más reciente para fines de actualización?

PÁGINAS.
fuente

Respuestas:

2

La etiqueta de serie quedó en desuso y se reemplazó con la etiqueta de época.

No sé cómo funcionó la etiqueta de serie, pero las comparaciones de versiones con la etiqueta de época tienen la época antepuesta a la versión antes de la comparación.

Supongo que algo similar se hizo con serial.

Supongo que el valor de serie también se antepuso, por lo que está comparando versiones como esta:

<serial>-<version>-<release>

Si el valor de serie era> 1 en el original, supongo que su valor predeterminado es 1 cuando no se especifica.

Siempre puede usar rpm --forcepara forzar una actualización a un RPM específico

Craig
fuente