web-dev-qa-db-fra.com

convention de version des paquets debian

J'utilise debian/Ubuntu et je me trompe sur les versions des paquets. Lors de l'utilisation de dpkg -l commande, j'obtiens:

ii  vim                                 2:7.3.429-2ubuntu2.1                Vi IMproved - enhanced vi editor
ii  vim-common                          2:7.3.429-2ubuntu2.1                Vi IMproved - Common files
ii  vim-runtime                         2:7.3.429-2ubuntu2.1                Vi IMproved - Runtime files
ii  vim-tiny                            2:7.3.429-2ubuntu2.1                Vi IMproved - enhanced vi editor - compact version
ii  virt-what                           1.11-1                              detect if we are running in a virtual machine
ii  w3m                                 0.5.3-5ubuntu1                      WWW browsable pager with excellent tables/frames support
ii  watershed                           6                                   reduce superfluous executions of idempotent command
ii  wget                                1.13.4-2ubuntu1                     retrieves files from the web
ii  whiptail                            0.52.11-2ubuntu10                   Displays user-friendly dialog boxes from Shell scripts
ii  whoopsie                            0.1.33                              Ubuntu crash database submission daemon
ii  wimlib9                             1.5.0-1~webupd8~precise             Library to extract, create, modify, and mount WIM files
ii  wimtools                            1.5.0-1~webupd8~precise             Tools to extract, create, modify, and mount WIM files
ii  wireless-tools                      30~pre9-5ubuntu2                    Tools for manipulating Linux Wireless Extensions
ii  wpasupplicant                       0.7.3-6ubuntu2.1                    client support for WPA and WPA2 (IEEE 802.11i)
ii  x11-common                          1:7.6+12ubuntu2                     X Window System (X.Org) infrastructure
ii  x11-utils                           7.6+4ubuntu0.1                      X11 utilities
ii  xauth                               1:1.0.6-1                           X authentication utility
ii  xbitmaps                            1.1.1-1                             Base X bitmaps
ii  xclip                               0.12-1                              command line interface to X selections
ii  xfonts-encodings                    1:1.0.4-1ubuntu1                    Encodings for X.Org fonts
ii  xfonts-utils                        1:7.6+1                             X Window System font utility programs
ii  xkb-data                            2.5-1ubuntu1.3                      X Keyboard Extension (XKB) configuration data
ii  xml-core                            0.13                                XML infrastructure and XML catalog file support
rc  xpdf                                3.02-21build1                       Portable Document Format (PDF) reader
ii  xterm                               271-1ubuntu2.1                      X terminal emulator
ii  xz-lzma                             5.1.1alpha+20110809-3               XZ-format compression utilities - compatibility commands
ii  xz-utils                            5.1.1alpha+20110809-3               XZ-format compression utilities
ii  zabbix-agent                        1:1.8.11-1                          network monitoring solution - agent
ii  zlib1g                              1:1.2.3.4.dfsg-3ubuntu4             compression library - runtime
ii  zlib1g-dev                          1:1.2.3.4.dfsg-3ubuntu4             compression library - development
ii  zsh                                 4.3.17-1ubuntu1                     Shell with lots of features

La troisième colonne est version, mais tout est "foiré" d'une manière que je ne comprends pas. Je veux dire, différents packages utilisent des spécifications de dénomination totalement différentes.

Voici les principales questions:

  1. Pourquoi certains numéros de version contiennent ubuntu et d'autres non?
  2. Qu'est-ce que toute la ponctuation spéciale -~+ signifier?
  3. Que sont alpha, build et dfsg? Puis-je simplement les utiliser avec désinvolture?
  4. vim et d'autres packages ont 2:. Qu'est-ce que ça veut dire?
  5. Comment fonctionne la "comparaison de versions", lorsque les formats de version peuvent être si différents?

Quelqu'un peut-il me l'expliquer? Ou où puis-je trouver un document officiel?

Merci d'avance.

39
cizixs

Le Debian Policy Manual a ceci à dire sur le champ de version, qui répond à certaines parties de votre question:

Format

Le format est: [Epoch:]upstream_version[-debian_revision]

Les trois composantes ici sont:

Époque

Il s'agit d'un seul entier (généralement petit) non signé. Il peut être omis, auquel cas zéro est supposé. S'il est omis, alors upstream_version peut ne pas contenir de deux-points. Il est fourni pour permettre de laisser des erreurs dans les numéros de version des anciennes versions d'un package, ainsi que dans les schémas de numérotation des versions précédentes d'un package.

version_amont

Il s'agit de la partie principale du numéro de version. Il s'agit généralement du numéro de version du package d'origine ("en amont") à partir duquel le fichier .deb a été créé, le cas échéant. Habituellement, ce sera dans le même format que celui spécifié par le ou les auteurs en amont; cependant, il peut être nécessaire de le reformater pour l'adapter au format et au schéma de comparaison du système de gestion des paquets.

Le comportement de comparaison du système de gestion de paquets par rapport à upstream_version est décrit ci-dessous. La partie upstream_version du numéro de version est obligatoire.

upstream_version ne peut contenir que des caractères alphanumériques [36] et les caractères "." (arrêt complet), "+" (plus), "-" (trait d'union), ":" (deux points), "~" (tilde) et doit commencer par un chiffre. S'il n'y a pas debian_revision alors les tirets ne sont pas autorisés; s'il n'y a pas Epoch alors les deux-points ne sont pas autorisés.

debian_revision

Cette partie du numéro de version spécifie la version du paquet Debian basée sur la version en amont. Il ne peut contenir que des caractères alphanumériques et les caractères "." (arrêt complet), "+" (plus), "~" (tilde) et est comparé de la même manière que upstream_version.

C'est facultatif; s'il n'est pas présent, alors upstream_version peut ne pas contenir de trait d'union. Ce format représente le cas où un logiciel a été écrit spécifiquement pour être un paquet Debian, où la source du paquet Debian doit toujours être identique à la source vierge et donc aucune indication de révision n'est requise.

Il est classique de redémarrer debian_revision à 1 chaque fois que upstream_version est augmenté.

Le système de gestion des packages séparera le numéro de version au dernier tiret de la chaîne (s'il y en a un) pour déterminer le upstream_version et debian_revision. L'absence d'un debian_revision équivaut à un debian_revision de 0.

Comparaison

Lors de la comparaison de deux numéros de version, d'abord l'Epoch de chacun est comparé, puis la version en amont si Epoch est égale, puis debian_revision if upstream_version est également égal. L'époque est comparée numériquement. Les parties upstream_version et debian_revision sont comparées par le système de gestion des packages en utilisant l'algorithme suivant:

Les cordes sont comparées de gauche à droite.

Tout d'abord, la partie initiale de chaque chaîne composée entièrement de caractères non numériques est déterminée. Ces deux parties (dont une peut être vide) sont comparées lexicalement. Si une différence est trouvée, elle est retournée. La comparaison lexicale est une comparaison des valeurs ASCII modifiées de sorte que toutes les lettres soient triées plus tôt que toutes les non-lettres et qu'un tilde trie avant tout, même la fin d'une partie. Par exemple , les éléments suivants sont triés du plus ancien au plus récent: ~~, ~~a, ~, la partie vide, a.

Ensuite, la partie initiale du reste de chaque chaîne qui se compose entièrement de caractères numériques est déterminée. Les valeurs numériques de ces deux parties sont comparées et toute différence trouvée est renvoyée comme résultat de la comparaison. À ces fins, une chaîne vide (qui ne peut apparaître qu'à la fin d'une ou des deux chaînes de version comparées) compte comme zéro.

Ces deux étapes (comparer et supprimer les chaînes non numériques initiales et les chaînes numériques initiales) sont répétées jusqu'à ce qu'une différence soit trouvée ou que les deux chaînes soient épuisées.

Notez que le but des époques est de nous permettre de laisser des erreurs dans la numérotation des versions et de faire face aux situations où le schéma de numérotation des versions change. Il n'est pas destiné à gérer les numéros de version contenant des chaînes de lettres que le système de gestion de packages ne peut pas interpréter (telles que ALPHA ou pre-), ou avec des commandes stupides.

ubuntu indiquera que le paquet a été construit spécifiquement pour Ubuntu. Les chaînes alpha et build ne semblent pas avoir de signification particulière, mais dfsg fait référence à un package qui a été modifié pour la conformité avec les Debian Free Software Guidelines .

54
Flup

XubuntuY partie de la version par ex. 1ubuntu1

  • X est la version du paquet Debian. La plupart des paquets Ubuntu sont basés sur des paquets Debian, qui est une distribution "en amont".

    Si 0, cela signifie qu'il n'y a pas de paquet Debian: il n'existe que dans Ubuntu.

    X se réinitialise lorsque la version en amont réelle est mise à jour, par exemple Binutils 2.25 à Binutils 2.26.

    Les versions de Debian existent parce que Debian peut apporter des correctifs aux paquets afin que cela fonctionne mieux dans le système Debian ou pour les versions de sécurité.

    Les développeurs Debian sont bien sûr désireux de fusionner les correctifs pour éviter de bifurquer.

    Chaque fois qu'un nouveau patch est créé, ce nombre augmente.

  • ubuntuY est facultatif.

    S'il n'est pas présent, cela signifie que le paquet Debian a été utilisé directement.

    Sinon, cela signifie qu'il s'agit du patch Yth Ubuntu appliqué au-dessus d'un patch Debian, un peu comme Debian s'applique au-dessus du vrai en amont.

    Y se réinitialise lorsque X augmente.

Si vous obtenez la source d'un package avec:

apt-get source gdb

vous verrez les correctifs appliqués par Ubuntu et Debian sur:

debian/patches/

Encore plus intéressant, vous pouvez cloner avec bzr et voir une liste de toutes les versions d'Ubuntu avec ce qui a changé entre elles:

bzr branch ubuntu:gdb
cd gdb
bzr log | less

Voir aussi: https://askubuntu.com/questions/620533/what-is-the-meaning-of-the-xubuntuy-string-in-ubuntu-package-names

Ce que représente réellement l'époque

https://askubuntu.com/questions/441879/why-do-some-packages-have-extra-numbers-on-the-front-of-their-version-string