Como comparar dois números de versão do pacote

2

Estou escrevendo um script em PHP que precisa comparar duas versões do pacote números para determinar qual é o mais novo.

O PHP tem uma função útil chamada version_compare() , mas fica realmente confusa com alguns dos números de versão mais criativos. Por exemplo, version_compare() acha que 0.9.8g-16ubuntu3.1 é mais recente que 0.9.8o-1ubuntu4.4 .

Alguém sabe como posso fazer isso funcionar?

Fico feliz em executar qualquer script de linha de comando usando exec() .

    
por Stephen RC 30.07.2012 / 10:44

1 resposta

5

Dê uma olhada na opção dpkg --compare-versions , será permitir que você peça ao dpkg para fazer a comparação:)

dpkg --compare-versions 0.9.8g-16ubuntu3.1 lt 0.9.8o-1ubuntu4.4

retornará 0, o que significa que 0.9.8g-16ubuntu3.1 é lt (menor que, & lt;) para 0.9.8o-1ubuntu4.4

    
por Cédric Julien 30.07.2012 / 10:51