Please read the Reasoning Section in Using Awesome window manager on CentOS 7. Whether or not the distribution is binary or not is irrelevant. This is because the same behavior can occur in all distributions.
Items 4 - 6 in the linked post are what revdep-rebuld
fixes. The fancy name for Item 4 is a Reverse Dependency. The only definition I could find was in this Wikipedia entry for Dependency Hell. See Conflicting and Circular Dependencies.
revdep-rebuld
, short for reverse dependency rebuild works by scanning your /lib
directories for .so
objects, then compares the version of the Shared Object to the version of the Static Library - the .a
files, if the static-libs
USE Flag was used. Both of these are then compared to the output of ldd
If there is a mismatch, the package is marked for rebuild, and then rebuilt.
All of that is in webKnjaz's answer, except revdep-rebuild
always starts at his step 2, i.e. it always assumes all packages are broken, therefore it assumes all libraries are broken until scanned.
You should also know that revdep-rebuild
has been integrated into newer versions of sys-apps/portage
in the @preserved-rebuild
set.
revdep-rebuild
is presumably an option.