Perché alcuni pacchetti hanno numeri extra prima dei due punti nella parte anteriore della stringa della loro versione?


29

Ho appena notato che Wine (e una serie di altri pacchetti) hanno spostato il loro schema di versioning in qualcosa del tipo:

1:1.6.2-0ubuntu3

Capisco tutto dopo il 1:... Ma a cosa si 1:riferisce?

Non sembra rispecchiare la versione principale. Guardando un elenco di aggiornamenti in sospeso, ci sono versioni come: 2:4.1.3...e ci sono molti pacchetti senza #:prefisso.

Cosa sta succedendo?


sembra specifico di Ubuntu, pacchetti.debian.org/sid/wine non ha questo prefisso
Sylvain Pineau

È nuovo anche per Wine in Ubuntu (a partire dal 14.04) ma altri pacchetti come python3-uno( in Ubuntu e in Debian ) hanno il prefisso in modo coerente.
Oli

In effetti, ho trovato la risposta sul superutente
Sylvain Pineau,

@Oli E ' non è nuova per il vino, era sempre lì, ma perché il suo valore è stato 0tutto il tempo fino a 14.04, è stato omesso da scrivere nella stringa di versione. Quindi, puoi pensare a tutti quei tanti pacchetti senza il #:prefisso in quanto contengono in realtà 0:. Vedi le risposte che hai ricevuto per capire meglio.
Radu Rădeanu,

Risposte:


26

Da 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.

Quindi, quel numero extra (nel tuo caso 1) si riferisce al componente di epoca che può essere omesso nel qual caso si assume 0 . E così, se vedi una stringa di versione che assomiglia 1.6.2-0ubuntu3, puoi pensare che in effetti assomigli 0:1.6.2-0ubuntu3. In che modo è utile e come viene: viene fornito per lasciare indietro gli errori nei numeri di versione delle versioni precedenti di un pacchetto e anche negli schemi di numerazione delle versioni precedenti di un pacchetto . Per capire meglio, dai un'occhiata ai seguenti paragrafi esplicativi del Manuale delle politiche di Debian - Controlla i file e i loro campi :

Quando si confrontano due numeri di versione, vengono confrontate prima l' epoca di ciascuna, quindi upstream_version se l' epoca è uguale e quindi debian_revision se upstream_version è uguale. l'epoca viene confrontata numericamente.

E:

Si noti che lo scopo delle epoche è di permetterci di lasciare errori nella numerazione delle versioni e di far fronte a situazioni in cui cambia lo schema di numerazione delle versioni. Non ha lo scopo di far fronte a numeri di versione contenenti stringhe di lettere che il sistema di gestione dei pacchetti non può interpretare (come ALPHAo pre-) o con ordini stupidi.


14

Questa è l'epoca. Sostituisce la versione nel determinare quale dei due pacchetti è più recente:

Dalla deb-versionpagina 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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.