Capítulo 5. Novas características no RHEL 8
Esta seção documenta as mudanças mais notáveis na embalagem RPM entre o Red Hat Enterprise Linux 7 e 8.
5.1. Apoio para dependências fracas
5.1.1. Introdução à política de dependências fracas
Weak dependencies
são variantes da diretiva Requires
. Estas variantes são comparadas com o virtual Provides:
e nomes de pacotes usando Epoch-Version-Release
comparações de faixa.
Weak dependencies
tem dois pontos fortes (weak
e hint
) e duas direções (forward
e backward
), conforme resumido na tabela a seguir.
A direção forward
é análoga a Requires:
. O backward
não tem análogo no sistema de dependência anterior.
Força/Direção | Avançar | Para trás |
---|---|---|
Fraco | Recomenda: | Suplementos: |
Dica | Sugere: | Aprimoramentos: |
As principais vantagens da política Weak dependencies
são:
- Permite instalações mínimas menores, mantendo o recurso de instalação padrão rico.
- Os pacotes podem especificar preferências para fornecedores específicos, mantendo a flexibilidade das ofertas virtuais.
5.1.1.1. Dependências fracas
Por padrão, Weak dependencies
são tratados de forma semelhante ao normal Requires:
. Os pacotes de correspondência estão incluídos no YUM transação. Se a adição do pacote levar a um erro, YUM por padrão, ignora a dependência. Portanto, os usuários podem excluir pacotes que seriam adicionados por Weak dependencies
ou removê-los posteriormente.
Condições de uso
Você pode usar Weak dependencies
somente se o pacote ainda funcionar sem a dependência.
É aceitável criar pacotes com funcionalidade muito limitada sem acrescentar nenhuma de suas fracas exigências.
Casos de uso
Use Weak dependencies
especialmente onde é possível minimizar a instalação para casos de uso razoável, como a construção de máquinas virtuais ou containers que têm um único propósito e não requerem o conjunto completo de recursos do pacote.
Os casos típicos de uso para Weak dependencies
são:
Documentação
- Os telespectadores de documentação, se faltarem, são tratados com elegância
- Exemplos
Plug-ins ou add-ons
- Suporte para formatos de arquivo
- Apoio a protocolos
5.1.1.2. Dicas
Hints
são, por padrão, ignorados por YUM. Eles podem ser usados por ferramentas GUI para oferecer pacotes adicionais que não são instalados por padrão, mas podem ser úteis em combinação com os pacotes instalados.
Não utilize Hints
para as exigências dos casos de uso principal de um pacote. Inclua tais requisitos no forte ou Weak dependencies
em seu lugar.
Preferência de pacote
YUM usa Weak dependencies
e Hints
para decidir qual pacote usar se há uma escolha entre vários pacotes igualmente válidos. Os pacotes que são apontados por dependências de pacotes instalados ou a serem instalados são preferidos.
Observe que as regras normais de resolução de dependência não são influenciadas por esta característica. Por exemplo, Weak dependencies
não pode impor uma versão mais antiga de um pacote a ser escolhido.
Se houver vários fornecedores para uma dependência, o pacote necessário pode adicionar um Suggests:
para fornecer uma dica ao resolvedor de dependência sobre qual opção é preferida.
Enhances:
só é usado quando o pacote principal e outros fornecedores concordam que adicionar a dica ao pacote necessário é, por alguma razão, a solução mais limpa.
Exemplo 5.1. Usando Dicas para preferir um pacote em vez de outro
Package A: Requires: mysql Package mariadb: Provides: mysql Package community-mysql: Provides: mysql
Se você quiser preferir o pacote mariadb
ao invés do pacote community-mysql
utilize →:
Sugere: mariadb para o Pacote A.
5.1.1.3. Dependências para frente e para trás
Forward dependencies
são, de forma semelhante a Requires
, avaliados para pacotes que estão sendo instalados. Os melhores dos pacotes correspondentes também são instalados.
Em geral, prefira Forward dependencies
. Adicione a dependência ao pacote quando conseguir que o outro pacote seja adicionado ao sistema.
Para Backward dependencies
, os pacotes contendo a dependência são instalados se um pacote correspondente for instalado também.
Backward dependencies
são projetados principalmente para fornecedores terceiros que podem anexar seus plug-ins, add-ons ou extensões à distribuição ou outros pacotes de terceiros.