O que vem depois do sublinhado em uma string de versão do RPM?

2

Estou ficando com conflitos de dependência ao tentar executar um yum update simples. Percebo que, em alguns casos, ele está procurando por um pacote chamado foo w.x-y.z.el6 , enquanto o repo tem apenas foo w.x-y.z.el6_a.b , em que a.b é algo como "2.1" ou "2.9". A especificação para nomes de arquivos RPM não menciona este bit de sublinhado - o que é isso significa?

    
por Coderer 21.05.2012 / 17:16

2 respostas

5

vonbrand tem tudo correto.

No seu exemplo, a versão w.x-y.z.el6_a.b significa que o número da versão do upstream é w.xe a versão da sua distribuição local (normalmente um patch ou número de compilação) é y.z.el6_a.b

Isso é diferente da versão w.x-y.z.el6, que é a mesma versão upstream (w.x), mas uma versão de distribuição local diferente (y.z.el6). Eles não são a mesma versão.

Quanto à diferença entre y.z.el6 e y.z.el6_a.b, isso dependerá da sintaxe específica da seção, que é totalmente dependente de como a pessoa / grupo que faz o pacote representa internamente suas versões. Para pacotes da Red Hat, a mudança que você está observando normalmente se refere a uma compilação diferente dentro de um único nível de correção. O código fonte pode ser idêntico para as duas versões, mas elas são compiladas contra diferentes versões do RHEL6 (por exemplo, 6.3 vs. 6.4). Eles podem depender de diferentes versões da glibc ou de outras bibliotecas compartilhadas.

Por exemplo, uma atualização que acabei de aplicar substituiu cups-1.4.2-48.el6_3.3.x86_64.rpm por cups-1.4.2-50.el6_4.4.x86_64.rpm. Ambos são compilações de copos versão 1.4.2. Pelo que entendi da convenção da Red Hat, o pacote foi atualizado do nível de patch 48 para 50, e agora é construído contra o RHEL 6.4 (vs. 6.3). Eu não tenho certeza do que significa o final ".4" vs ".3" - eu tenho alguns pacotes onde a versão termina em "el6", alguns que terminam em "el6_3", alguns em "el6_4", alguns em "el6_4 .1 ", alguns em" el6_4.4 ", etc. É claro que, como todos esses números de versão são específicos da distribuição, eu precisaria encontrar algum tipo de documento da Red Hat para ter certeza.

Em resumo, para o seu exemplo, esses dois pacotes são patches / builds diferentes da mesma versão de fonte upstream, mas o significado específico além disso exigirá perguntar a origem do pacote.

    
por 01.03.2013 / 17:10
1

O nome do pacote RPM é < name > - < versão > - < localrelease >. < arch > .rpm O < name > é o nome do pacote (pode muito bem ser algo como funky-gui-devel-libs, o material separador de '-s é contado a partir do final), < versão > é a versão upstream (não '-'!), < localrelease > é uma versão local (pode haver várias rodadas de patches na mesma base upstream, geralmente inclui o sistema de destino), < arch > é a arquitetura. O sublinhado é apenas um separador que não é um '-' aqui.

    
por 18.01.2013 / 18:30