emerge -K (--usepkgonly) requires that all dependancys be satisfyed by binary packages.... even if the dependancy in question is satisfyed by an already merged package. Eg: cdimage root # emerge -uvK ccache Calculating dependencies | !!! There are no packages available to satisfy: ">=sys-apps/portage-2.0.46-r11" !!! Either add a suitable binary package or compile from an ebuild. !!! Error calculating dependencies. Please correct. Even though portage is currently on v 2.0.49-r15: * sys-apps/portage Latest version available: 2.0.49-r15 Latest version installed: 2.0.49-r15 Size of downloaded files: 230 kB Homepage: http://www.gentoo.org Description: Portage ports system emerge -k does not seem to have this problem. This *might* be a dupe of bug 30206 (http://bugs.gentoo.org/show_bug.cgi? id=30206) Reproducible: Always Steps to Reproduce: 1. 2. 3.
I fail to see how this is a bug, considering it's documented behavior. man emerge: --usepkgonly (-K) Behaves just as --usepkg except that this will only emerge binary packages. All the binary packages must be available at the time of dependency calcu- lation or emerge will simply abort.
Huh... I can see how you could read the description like that. However this would require that every single merged package in use on the system would require a corrosponding binary package to be stored in /usr/portage/packages.... and that seems plain wrong. It means you would have to double the size of your base gentoo install. (50% being in /usr/portage/packages) I thought that when it refered to dependant packages it was refereing to dependant packages that had to be merged. If -K is supposed to operate in the fasion aethyr describes then I suppose this isn't a bug.... But what is the point of requiring a package for a dependancy that is already satisfyed?!? I don't see why -K would be designed like that....
It's designed like that because 1 year apart, two packages that depend on each other may very well be completely different. Portage may very well require you to have a package that doesn't exist any longer. This is not a trivial matter nor is it overly difficult. It is done as stated in the documentation.