Red Hat Training

A Red Hat training course is available for RHEL 8

3.4. Verificação da sanidade dos RPMs

Depois de criar uma embalagem, verifique a qualidade da embalagem.

A principal ferramenta para verificar a qualidade da embalagem é o rpmlint.

A ferramenta rpmlint faz o seguinte:

  • Melhora a capacidade de manutenção do RPM.
  • Permite a verificação da sanidade através da análise estática do RPM.
  • Possibilita a verificação de erros através da análise estática da RPM.

A ferramenta rpmlint pode verificar RPMs binários, RPMs de origem (SRPMs) e arquivos SPEC, portanto é útil para todas as etapas de embalagem, como mostrado nos exemplos a seguir.

Note que rpmlint tem diretrizes muito rigorosas; por isso, às vezes é aceitável pular alguns de seus erros e avisos, como mostrado nos exemplos a seguir.

Nota

Nos exemplos a seguir, rpmlint é executado sem nenhuma opção, o que produz uma saída não-verbose. Para explicações detalhadas de cada erro ou aviso, você pode rodar rpmlint -i em seu lugar.

3.4.1. Verificando a sanidade do Bello

Esta seção mostra possíveis avisos e erros que podem ocorrer ao verificar a sanidade RPM no exemplo do arquivo bello SPEC e bello binário RPM.

3.4.1.1. Verificação do Arquivo Bello SPEC

Exemplo 3.2. Saída da execução do comando rpmlint no arquivo SPEC para o bello

$ rpmlint bello.spec
bello.spec: W: invalid-url Source0: https://www.example.com/bello/releases/bello-0.1.tar.gz HTTP Error 404: Not Found
0 packages and 1 specfiles checked; 0 errors, 1 warnings.

Para bello.spec, há apenas um aviso, que diz que a URL listada na diretiva Source0 é inalcançável. Isto é esperado, pois o URL especificado example.com não existe. Presumindo que esperamos que este URL funcione no futuro, podemos ignorar esta advertência.

Exemplo 3.3. Saída da execução do comando rpmlint no SRPM para o bello

$ rpmlint ~/rpmbuild/SRPMS/bello-0.1-1.el8.src.rpm
bello.src: W: invalid-url URL: https://www.example.com/bello HTTP Error 404: Not Found
bello.src: W: invalid-url Source0: https://www.example.com/bello/releases/bello-0.1.tar.gz HTTP Error 404: Not Found
1 packages and 0 specfiles checked; 0 errors, 2 warnings.

Para a SRPM bello, há um novo aviso, que diz que a URL especificada na diretiva URL é inalcançável. Supondo que o link estará funcionando no futuro, podemos ignorar esta advertência.

3.4.1.2. Verificação do RPM binário bello

Ao verificar os RPMs binários, rpmlint verifica os seguintes itens:

  • Documentação
  • Páginas do manual
  • Uso consistente do padrão de hierarquia do sistema de arquivos

Exemplo 3.4. Saída da execução do comando rpmlint no RPM binário para bello

$ rpmlint ~/rpmbuild/RPMS/noarch/bello-0.1-1.el8.noarch.rpm
bello.noarch: W: invalid-url URL: https://www.example.com/bello HTTP Error 404: Not Found
bello.noarch: W: no-documentation
bello.noarch: W: no-manual-page-for-binary bello
1 packages and 0 specfiles checked; 0 errors, 3 warnings.

Os avisos no-documentation e no-manual-page-for-binary dizem que o RPM não tem documentação ou páginas de manual, porque não fornecemos nenhuma. Além das advertências acima, o RPM passou por rpmlint verificações.