Conflicts are a type of package Dependency that are used to express that two packages cannot be installed together.
There are two types of conflicts, binary conflicts, and build conflicts.
Binary conflicts express that two BinaryPackages cannot be installed on the system together. The usual reason for this is that the two packages contain some of the same files. As dpkg cannot handle this the packages cannot be installed together.
There are other alternatives to a binary conflict, such as the alternatives system, but sometimes a conflict must be used.
Binary conflicts are expressed using the
field of the ControlFile.
A build conflict means that a binary package cannot be installed on the system when a different SourcePackage is building. This could be because the program being built will autmatically detect the presence of a library, and so link against it, but that is not wanted.
Build conflicts are expressed using the
Build-Indep-Conflicts: fields of the ControlFile.