Package Modeling Constraint Satisfaction Constraint Types Dependency resolution involves satisfaction of many constraints: Persistent configuration parameters, like those that come from make.profile, make.conf, and the /etc/portage directory. Current command parameters, which may include options, atoms, or sets. Package Dependencies Package Dependencies Common types of package dependencies: Files required for building or installing. Downloads may be necessary to satisfy these. Other packages required to be installed for buildtime or runtime. Blockers that prevent conflicting packages from being installed simultaneously. Conflicts Blocker Conflicts If one package blocks another package, the two packages conflict such that they cannot be installed simultaneously. These conflicts are often due to file collisions. Slot Conflicts If two different packages that occupy the same slot are chosen to satisfy dependencies, a slot conflict occurs. The two packages cannot be installed simultaneously and therefore the respective dependencies will not be satisfied simultaneously. Indirect Conflicts If the dependencies of two parent packages cannot be installed simultaneously, it creates an indirect conflict between the parent packages since their respective dependencies cannot be satisfied simultaneously. Dependency Neglection In order to significantly reduce the resources consumed by the modeling process, the dependencies of installed packages may be neglected. If a more complete dependency calculation is desired, there is a --complete-graph option which will ensure that the dependencies of installed packages are properly considered.