Por que alguns pacotes possuem números extras na frente de sua string de versão?

24

Acabei de notar que o Wine (e vários outros pacotes) mudaram seu esquema de versão para algo como:

1:1.6.2-0ubuntu3

Eu entendo tudo após o 1: ... Mas a que o 1: se refere?

Não parece espelhar a versão principal. Observando uma lista de upgrades pendentes, há versões como: 2:4.1.3... e há muitos pacotes sem o prefixo #: .

O que está acontecendo?

    
por Oli 01.04.2014 / 12:46

2 respostas

24

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.

Então, esse número extra (no seu caso 1 ) refere-se ao epoch componente que pode ser omitido, caso em que 0 é assumido . E assim, se você vir uma string de versão que parece com 1.6.2-0ubuntu3 , pode pensar que, na verdade, ela parece com 0:1.6.2-0ubuntu3 . Como isso é útil e como isso acontece: É fornecido para permitir que erros nos números de versão de versões mais antigas de um pacote, e também esquemas de numeração de versões anteriores de um pacote, sejam deixados para trás . Para entender melhor, observe mais detalhadamente os seguintes parágrafos explicativos do Manual de Normas da Debian - Arquivos de controle e seus campos :

  

Ao comparar dois números de versão, primeiro a época de cada   comparado, então o upstream_version se epoch for igual e, em seguida,    debian_revision se upstream_version também for igual. época é comparada numericamente.

E:

  

Note que o propósito das épocas é nos permitir deixar para trás   erros na numeração de versões e para lidar com situações em que o   alterações no esquema de numeração de versão. É não destinado a lidar com   números de versão contendo cadeias de letras que o pacote   o sistema de gerenciamento não pode interpretar (como ALPHA ou pre- ) ou   com ordens bobas.

    
por Radu Rădeanu 01.04.2014 / 12:59
14

Esta é a época. Ele substitui a versão na determinação de qual dos dois pacotes é mais recente:

Na página deb-version man:

   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.

Fonte

    
por Sylvain Pineau 01.04.2014 / 12:55