Dlaczego niektóre pakiety mają dodatkowe liczby przed dwukropkiem na początku łańcucha wersji?

29

Właśnie zauważyłem, że Wine (i wiele innych pakietów) zmieniły swój schemat wersjonowania na coś takiego:

1:1.6.2-0ubuntu3

Rozumiem wszystko po1: ... Ale co robi 1:patrz?

Wydaje się, że nie odzwierciedla głównej wersji. Patrząc na listę oczekujących aktualizacji, istnieją wersje takie jak: 2:4.1.3...i jest wiele pakietów bez #:prefiksu.

Co się dzieje?

Oli
źródło
wydaje się, że jest specyficzny dla Ubuntu, packages.debian.org/sid/wine nie ma tego prefiksu
Sylvain Pineau
Jest nowy dla Wine w Ubuntu (od 14.04), ale inne pakiety, takie jak python3-uno( w Ubuntu i Debian ) mają konsekwentnie przedrostek.
Oli
Rzeczywiście, znalazłem odpowiedź na superużytkowniku
Sylvain Pineau
@Oli To nie nowy dla wina, to był zawsze tam, ale ponieważ jego wartość była 0przez cały czas aż do 14.04, został pominięty być napisane w ciągu wersji. Możesz więc pomyśleć o tych wszystkich pakietach bez #:prefiksu, ponieważ one w rzeczywistości zawierają 0:. Zobacz odpowiedzi, które otrzymałeś, aby lepiej zrozumieć.
Radu Rădeanu

Odpowiedzi:

26

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

Tak więc ta dodatkowa liczba (w twoim przypadku 1) odnosi się do komponentu epoki , który można pominąć, w którym to przypadku zakłada się 0 . I tak, jeśli zobaczysz ciąg wersji, który wygląda tak, 1.6.2-0ubuntu3jakbyś mógł pomyśleć, że tak naprawdę wygląda 0:1.6.2-0ubuntu3. Jak to jest pomocne i jak to się dzieje: Zapewniono, że błędy w numerach wersji starszych wersji pakietu, a także schematy numeracji poprzednich wersji pakietu mogą zostać pominięte . Aby lepiej zrozumieć, zapoznaj się z poniższymi objaśnieniami z Podręcznika Polityki Debiana - Pliki kontrolne i ich pola :

Porównując dwa numery wersji, najpierw epoka każdego są porównywane, wtedy wersja_autora jeśli epoka jest równa, a następnie rewizja_debiana jeśli wersja_autora jest również równe. epoka jest porównywana numerycznie.

I:

Należy pamiętać, że celem epok jest umożliwienie nam pozostawienia błędów w numeracji wersji i radzenia sobie w sytuacjach, w których zmienia się schemat numeracji wersji. Jego celem nie jest radzenie sobie z numerami wersji zawierającymi ciąg liter, których system zarządzania pakietami nie może zinterpretować (takich jak ALPHAlub pre-), lub z niemądrymi porządkami.

Radu Rădeanu
źródło
14

To jest epoka. Zastępuje wersję, określając, który z dwóch pakietów jest nowszy:

Ze strony podręcznika deb-version:

   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.

Źródło

Sylvain Pineau
źródło