Red Hat Training

A Red Hat training course is available for RHEL 8

5.2.4. Semântica

Usar Boolean dependencies não muda a semântica das dependências regulares.

Se for utilizado o site Boolean dependencies, a verificação de uma correspondência é feita em todos os nomes e o valor booleano da correspondência é então agregado sobre os operadores booleanos.

Importante

Para todas as dependências, com exceção de Conflicts:, o resultado tem que ser True para não impedir uma instalação. Para Conflicts:, o resultado tem que ser False para não impedir uma instalação.

Atenção

Provides não são dependências e não podem conter expressões booleanas.

5.2.4.1. Compreender a saída do se operador

O operador if também está devolvendo um valor booleano, que normalmente está próximo do que é a compreensão intuitiva. Entretanto, os exemplos abaixo mostram que, em alguns casos, a compreensão intuitiva do if pode ser enganosa.

Exemplo 5.3. Resultados enganosos do se operador

Esta afirmação é verdadeira se o pkgB não for instalado. Entretanto, se esta declaração for usada onde o resultado padrão for falso, as coisas se tornam complicadas:

Requer: (pkgA se pkgB)

Esta declaração é um conflito, a menos que o pkgB esteja instalado e o pkgA não esteja:

Conflitos: (pkgA se pkgB)

Portanto, talvez você prefira usar:

Conflitos: (pkgA e pkgB)

O mesmo é verdade se o operador if estiver aninhado em termos de or:

Requer: ((pkgA se pkgB) ou pkgC ou pkgC)

Isto também torna todo o termo verdadeiro, pois o termo if é verdadeiro se o pkgB não for instalado. Se o pkgA só ajuda se o pkgB estiver instalado, use and em seu lugar:

Requer: ((pkgA e pkgB) ou pkgC ou pkgP)