¿Por qué algunos paquetes tienen números adicionales antes de dos puntos en el frente de su cadena de versión?

29

Acabo de notar que Wine (y varios otros paquetes) han cambiado su esquema de versiones a algo como:

1:1.6.2-0ubuntu3

Entiendo todo después de la 1:... Pero lo que hace el 1:refiero a?

No parece reflejar la versión principal. Mirando una lista de actualizaciones pendientes, hay versiones como: 2:4.1.3...y hay muchos paquetes sin el #:prefijo.

¿Que esta pasando?

Oli
fuente
parece ser específico de Ubuntu, packages.debian.org/sid/wine no tiene este prefijo
Sylvain Pineau
También es nuevo para Wine en Ubuntu (a partir de 14.04) pero otros paquetes como python3-uno( en Ubuntu y Debian ) tienen el prefijo de manera consistente.
Oli
De hecho, he encontrado la respuesta en superusuario
Sylvain Pineau, el
Es @Oli no nuevos para el vino, que era siempre allí, sino porque su valor era 0todo el tiempo hasta 14.04, se omitió a ser escrito en la cadena de versión. Por lo tanto, puede pensar en todos esos paquetes sin el #:prefijo, ya que de hecho contienen 0:. Vea las respuestas que ha recibido para comprender mejor.
Radu Rădeanu

Respuestas:

26

De man deb-version:

NAME
       deb-version - Debian package version number format

SYNOPSIS
       [epoch:]upstream-version[-debian-revision]

DESCRIPTION
       Version  numbers as used for Debian binary and source packages
       consist of three components. These are:

       epoch  This is a single (generally  small)  unsigned  integer.
              It  may  be omitted, in which case zero is assumed.  If
              it is omitted then the upstream-version may not contain
              any colons.

              It is provided to allow mistakes in the version numbers
              of older versions of a package, and  also  a  package's
              previous version numbering schemes, to be left behind.

Entonces, ese número adicional (en su caso 1) se refiere al componente de época que puede omitirse, en cuyo caso se supone 0 . Y así, si ve una cadena de versión que se parece 1.6.2-0ubuntu3, puede pensar que de hecho se parece 0:1.6.2-0ubuntu3. Cómo es útil y cómo se obtiene esto: se proporciona para permitir errores en los números de versión de versiones anteriores de un paquete, y también en los esquemas de numeración de versiones anteriores de un paquete . Para comprender mejor, eche un vistazo más de cerca a los siguientes párrafos explicativos del Manual de políticas de Debian - Controle los archivos y sus campos :

Al comparar dos números de versión, primero se compara la época de cada uno, luego upstream_version si epoch es igual, y luego debian_revision si upstream_version también es igual. época se compara numéricamente.

Y:

Tenga en cuenta que el propósito de las épocas es permitirnos dejar atrás errores en la numeración de versiones y hacer frente a situaciones en las que cambia el esquema de numeración de versiones. Se no la intención de hacer frente a los números de versión que contienen cadenas de letras que el sistema de gestión de paquetes no puede interpretar (como ALPHAo pre-), o con ordenamientos tontas.

Radu Rădeanu
fuente
14

Esta es la época. Anula la versión para determinar cuál de los dos paquetes es más nuevo:

Desde la deb-versionpágina del manual:

   epoch  This is a single (generally small) unsigned integer.  It may  be
          omitted,  in  which case zero is assumed.  If it is omitted then
          the upstream-version may not contain any colons.

          It is provided to allow mistakes in the version numbers of older
          versions  of  a  package,  and also a package's previous version
          numbering schemes, to be left behind.

Fuente

Sylvain Pineau
fuente