63 votes

convention de version des paquets debian

J'utilise debian/Ubuntu, et je m'embrouille dans les versions des paquets. Lorsque j'utilise 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 c'est tout "foiré" d'une manière que je ne peux pas comprendre. Je veux dire que différents paquets utilisent des spécifications de nommage totalement différentes.

Voici les principales questions :

  1. Pourquoi certains numéros de version ont-ils ubuntu en eux, et d'autres non ?
  2. Qu'est-ce que toute cette ponctuation spéciale -~+ C'est-à-dire ?
  3. Quels sont les alpha , build et dfsg ? Puis-je les utiliser de manière occasionnelle ?
  4. vim et d'autres paquets ont 2: . Qu'est-ce que ça veut dire ?
  5. Comment fonctionne la "comparaison des versions", alors que les formats des versions peuvent être si différents ?

Quelqu'un peut-il m'expliquer cela ? Ou bien où puis-je trouver un document officiel ?

Merci d'avance.

0 votes

Que voulez-vous dire par : "Pourquoi y a-t-il des ubuntu et pas des ubuntu ?"

2 votes

@CiroSantilli709 c'est-à-dire pourquoi certains numéros de version ont un suffixe contenant le mot ubuntu et d'autres non.

80voto

Flup Points 7496

En Manuel de la charte Debian a ceci à dire sur le champ de la version, ce qui répond à certaines parties de votre question :

Format

Le format est le suivant : [epoch:]upstream_version[-debian_revision]

Les trois composants sont ici :

époque

Il s'agit d'un seul (généralement petit) entier non signé. Il peut être omis, auquel cas zéro est supposé. S'il est omis, la valeur version_amont ne doit pas contenir de deux-points. Il est fourni pour permettre aux erreurs dans les numéros de version des anciennes versions d'un paquet, ainsi qu'aux anciens systèmes de numérotation des versions d'un paquet, d'être laissées derrière.

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 paquet original (" amont ") à partir duquel le fichier .deb a été créé, si cela s'applique. Habituellement, il sera dans le même format que celui spécifié par le ou les auteurs amont ; cependant, il peut être reformaté pour s'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 des paquets par rapport à la version_amont est décrit ci-dessous. Le site version_amont du numéro de version est obligatoire.

En version_amont ne peut contenir que des caractères alphanumériques [36] et les caractères "." (point final), "+" (plus), "-" (trait d'union), ":" (colon), "~" (tilde) et doit commencer par un chiffre. S'il n'y a pas de debian_revision alors les traits d'union ne sont pas autorisés ; s'il n'y a pas de époque 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 amont. Elle ne peut contenir que des caractères alphanumériques et les caractères "." (point final), "+" (plus), "~" (tilde) et est comparée de la même manière que l'élément version_amont est.

Il est facultatif ; s'il n'est pas présent, l'élément version_amont ne peut 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 où aucune indication de révision n'est donc nécessaire.

Il est conventionnel de redémarrer le debian_revision à 1 chaque fois que le version_amont est augmenté.

Le système de gestion des paquets séparera le numéro de version au niveau du dernier tiret de la chaîne (s'il y en a un) afin de déterminer le numéro de la version. version_amont y debian_revision . L'absence d'un debian_revision est équivalent à un debian_revision de 0.

Comparaison

Lors de la comparaison de deux numéros de version, on compare d'abord l'époque de chacune d'elles, puis la version amont si l'époque est égale, et enfin la version amont. debian_revision si version_amont est également égale. L'époque est comparée numériquement. Le site version_amont y debian_revision sont comparées par le système de gestion des paquets à l'aide de l'algorithme suivant :

Les cordes sont comparées de gauche à droite.

Tout d'abord, la partie initiale de chaque chaîne de caractères composée entièrement de caractères non numériques. est déterminée. Ces deux parties (dont l'une peut être vide) sont comparées lexicalement. Si une différence est trouvée, elle est retournée. Le site comparaison lexicale est une comparaison de valeurs ASCII modifiées de telle sorte que toutes les lettres soient triées avant toutes les non-lettres et qu'une valeur de tilde trie avant tout, même la fin d'une partie. Par exemple, le parties suivantes sont triées de la plus ancienne à la plus récente : ~~ , ~~a , ~ la partie vide, a .

Ensuite, la partie initiale du reste de chaque chaîne qui consiste 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 en tant que le résultat de la comparaison. À cette fin, une chaîne vide (qui ne peut se trouver qu'à la fin de l'une ou des deux chaînes de version comparées) compte pour zéro. comparées) compte pour zéro.

Ces deux étapes (comparaison et suppression des chaînes initiales de non-chiffre et de chaînes de chiffres 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 derrière nous erreurs dans la numérotation des versions, et de faire face aux situations où la où le schéma de numérotation des versions change. Il n'est pas prévu de faire face à les numéros de version contenant des chaînes de lettres que le gestionnaire de paquets ne peut pas interpréter (comme ALPHA o pre- ), ou avec des ordres idiots.

ubuntu indique que le paquet a été construit spécifiquement pour Ubuntu. L'adresse alpha y build Les chaînes de caractères ne semblent pas avoir de signification particulière, mais dfsg fait référence à un paquet qui a été modifié pour le respect de la Les principes du logiciel libre selon Debian .

2 votes

Merci, cela m'aide beaucoup. Mais comment fonctionne la comparaison des versions ? chiffres, lettres, et ~+, lequel vient en premier, et lequel en dernier ?

1 votes

J'ai élargi la citation dans ma réponse pour inclure la section du manuel qui décrit le comportement de comparaison.

3 votes

Existe-t-il un outil en ligne qui me permette de tester la manière dont ces chaînes de versions sont triées ?

22voto

Rafe Points 4602

XubuntuY une partie de la version, par exemple 1ubuntu1

  • X est la version du paquet Debian. La plupart des paquets Ubuntu sont basés sur des paquets Debian, qui est une distro "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 amont réelle est mise à jour, par exemple de Binutils 2.25 à Binutils 2.26.

    Les versions Debian existent parce que Debian peut apporter des correctifs aux paquets afin qu'ils fonctionnent mieux sur le système Debian ou pour des raisons de sécurité.

    Les développeurs Debian tiennent bien entendu à fusionner les correctifs pour éviter les bifurcations.

    Ce nombre augmente à chaque fois qu'un nouveau jeu de patches est réalisé.

  • 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 Yième correctif Ubuntu appliqué par-dessus un correctif Debian, de la même manière que Debian s'applique par-dessus le véritable amont.

    Y se réinitialise lorsque X augmentations.

Si vous obtenez la source d'un paquet avec :

apt-get source gdb

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

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'Epoch

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X