Nome do pacote RPM

2

Estou usando o serviço Copr do Fedora para criar um pacote com versão não-numérica de acordo com as especificações em Embalagem: Diretrizes de Nomenclatura .

Neste momento, existem dois pacotes de criação com sucesso:

paper-icon-theme 1.0-1.20151202git954bb77

paper-icon-theme 1.0-1.20151202gited30409

Destes dois o primeiro é mais recente.

No entanto, quando eu faço um dnf update , o pacote paper-icon-theme-1.0-1.20151202gited30409 é instalado, que é a versão mais antiga. Eu também tentei depois de limpar o cache de expiração, mas dá o mesmo resultado.

O que estou fazendo de errado aqui? É por causa da maneira como estou nomeando meus pacotes?

Link para minhas compilações do Copr

    
por Ashesh Kumar Singh 01.12.2015 / 21:37

2 respostas

3

Em suma, sim, é por causa dos nomes dos seus pacotes.

Mais especificamente, o problema está relacionado à string N-V-R, que é o nome, versão e release. O algoritmo de classificação é bastante complicado, mas procura pelo pacote com o maior valor de versão-release, e esse é considerado o pacote mais recente. Como a última parte da string de lançamento do pacote é maior no segundo pacote do que no primeiro ("ed30409" > "954bb77"), ele considera o segundo pacote mais recente.

    
por 01.12.2015 / 21:41
2

O algoritmo de comparação primeiro verifica o Epoch (um valor normalmente oculto que a maioria dos pacotes não usa), depois Version, depois Release. Dentro de cada um desses, cada seção separada de letras ou números é comparada individualmente. Isso significa que o esquema que você está seguindo funciona muito bem - desde que os instantâneos venham de datas separadas .

No entanto, se você ler atentamente em " pacotes pós-lançamento ", observe que você deve aumentando o "incremento do número de lançamento" a cada vez, então seus pacotes devem ser

paper-icon-theme-1.0- 2 .20151202git954bb77

paper-icon-theme-1.0-1.20151202gited30409

(ênfase adicionada à alteração "2").

Esse número continua aumentando à medida que você faz instantâneos pós-1.0 - redefina para 1 novamente quando a própria versão é incrementada.

    
por 02.12.2015 / 21:37