deb-version(7) | dpkg suite | deb-version(7) |
deb-version - formato Debian do número de versão do pacote
[epoch:]upstream-version[-debian-revision]
Os números de versões como usados para pacotes binário e fonte Debian consistem de três componentes. Estes são:
É fornecido para permitir enganos nos números de versão de versões antigas de um pacote, e também esquemas de numeração de versões antigas de um pacote, para se deixar para trás.
O comportamento comparativo do sistema de gestão de pacotes com respeito a upstream-version é descrito abaixo. A porção upstream-version do número de versão é obrigatória.
O upstream-version apenas pode conter alfanuméricos (“A-Za-z0-9”) e os caracteres . + - : ~ (ponto, mais, hífen, dois pontos, til) e deve começar com um digito. Se não existir nenhum debian-revision então os hífens não são permitidos, se não existir nenhum epoch então símbolos dois pontos não são permitidos.
É opcional; se não estiver presente então o upstream-version não pode conter um hífen. Este formato representa o caso onde um pedaço de software foi escrito especificamente para ser tornado num pacote Debian, e assim há apenas uma “debianizaçao” dele e assim sendo não é requerido nenhuma indicação de revisão.
É convencional reiniciar a revisão-debian a ‘1’ cada vez que a versão-do-autor é incrementada.
O dpkg irá separar o número de versão pelo último hífen da string (se existir um) para determinar upstream-version e debian-revision. A ausência de debian-revision é comparada antes da presença de uma (mas note que debian-revision é a parte menos significante do número da versão).
As partes versão-do-autor e revisão-debian são comparadas pelo sistema de gestão de pacotes usando o mesmo algoritmo:
As strings são comparadas da esquerda para a direita.
Primeiro é determinada a parte inicial de cada string consistindo inteiramente de caracteres não-dígitos. Estas duas partes (uma delas pode estar vazia) são comparadas lexicamente. Se uma diferença for encontrada, é retornada. A comparação léxica é uma comparação de valores ASCII modificados para que todas as letras fiquem organizadas antes das não-letras e assim para que um título fique organizado antes de tudo, mesmo do final de uma parte. Por exemplo, as seguintes partes estão organizadas em ordem: ‘~~’, ‘~~a’, ‘~’, a parte vazia, ‘a’.
Então é determinada a parte inicial do restante de cada string que consiste inteiramente de caracteres dígitos. Os valores numéricos destas duas partes são comparados, e qualquer diferença encontrada é retornada como resultado da comparação. Para estes objectivos uma string vazia (a qual pode apenas ocorrer no final de uma ou ambas strings de versão a serem comparadas) conta como zero.
Estes dois passos (comparar e remover strings não-dígito iniciais) são repetidos até que seja encontrada uma diferença ou ambas strings estão esgotadas.
Note que o objectivo de épocas é permitir-nos deixar para trás enganos na numeração das versões, e para lidar com situações onde o esquema de numeração da versão mude. Não se destina a lidar com números de versões que contém strings de letras que o sistema de gestão de pacotes não pode interpretar (tais como ‘ALPHA’ ou ‘pre-’), ou com pedidos tolos.
O caractere til e as suas propriedades de organização especiais foi introduzido no dpkg 1.10 e algumas partes dos scripts de compilação do dpkg apenas ganharam suporte para ele nas séries 1.10.x.
Américo Monteiro
Se encontrar algum erro na tradução deste documento, por favor comunique para Américo Monteiro <a_monteiro@gmx.com>.
2023-05-11 | 1.21.22 |