5.15. Manipulando Conflitos

Existem três variáveis ​​diferentes para registrar um conflito entre pacotes e ports: CONFLICTS, CONFLICTS_INSTALL e CONFLICTS_BUILD.

Nota:

As variáveis ​​de conflito definem automaticamente a variável IGNORE, que é mais amplamente documentada em Seção 13.13, “Marcando um Port não Instalável com a variável BROKEN, FORBIDDEN ou IGNORE.

Ao remover um dos vários ports conflitados, é aconselhável reter CONFLICTS nos outros ports por alguns meses para atender usuários que apenas fazem atualizações de vez em quando.

CONFLICTS_INSTALL

Se o pacote não puder coexistir com outros pacotes (devido a conflitos de arquivos, incompatibilidades de tempo de execução, etc.). A checagem CONFLICTS_INSTALL é feita após o estágio de compilação e antes do estágio de instalação.

CONFLICTS_BUILD

Se o port não puder ser compilado quando outros ports específicos já estiverem instalados. Conflitos de compilação não serão registrados no pacote final.

CONFLICTS

Se o port não puder ser compilado quando um certo port estiver instalado e o pacote final não puder coexistir com o outro pacote. A checagem CONFLICTS é feita antes do estágio de compilação e antes do estágio de instalação.

O conteúdo mais comum de uma dessas variáveis ​​é o pacote base de outro port. O pacote base é o nome do pacote sem a versão, ele pode ser obtido executando make -V PKGBASE.

Exemplo 5.46. Uso básico de CONFLICTS*

dns/bind99 não pode ser instalado se dns/bind910 está presente porque eles instalam os mesmos arquivos. Primeiro, reúna o pacote base para usar:

% make -C dns/bind99 -V PKGBASE
bind99
% make -C dns/bind910 -V PKGBASE
bind910

Então adicione ao Makefile do dns/bind99:

CONFLICTS_INSTALL=	bind910

E adicione ao Makefile do dns/bind910:

CONFLICTS_INSTALL=	bind99

Às vezes, apenas uma versão de outro port é incompatível, neste caso, use o nome completo do pacote, com a versão, e use shell globs, como * e ? para garantir que todas as versões possíveis sejam correspondidas.

Exemplo 5.47. Usando CONFLICTS* Com Globs.

Nas versões 2.0 até 2.4.1_2, deskutils/gnotime instalava uma versão integrada de databases/qof.

Para refletir este passado, o Makefile do database/qof contém:

CONFLICTS_INSTALL=	gnotime-2.[0-3]* \
			gnotime-2.4.0* gnotime-2.4.1 \
			gnotime-2.4.1_[12]

As primeira entrada corresponde as versões 2.0 até 2.3, a segunda corresponde todas as revisões de 2.4.0, a terceira corresponde a versão exata 2.4.1, e a última corresponde a primeira e segunda revisão da versão 2.4.1.

deskutils/gnotime não possui nenhuma linha de conflitos porque sua versão atual não conflita com mais nada.


All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.