looks like if ROOT & PORTAGE_BINHOST are set via PORTAGE_CONFIGROOT, emerge will incorrectly warn that it is unset. there might be a simpler scenario here, but this is pretty close :p. Portage 2.2.0_alpha161 (default/linux/amd64/10.0/developer, gcc-4.7.2, glibc-2.17, 3.7.1 x86_64) to reproduce: mkdir -p /tmp/configroot/etc/portage cd /tmp/configroot/etc/portage ln -s /etc/portage/make.profile echo PORTAGE_BINHOST=file:///usr/portage/packages > make.conf echo ROOT=/tmp/configroot >> make.conf export PORTAGE_CONFIGROOT=/tmp/configroot portageq envvar PORTAGE_BINHOST file:///usr/portage/packages emerge -gpvq iputils --nodeps !!! PORTAGE_BINHOST unset, but use is requested.
I guess you don't have PORTAGE_BINHOST set for PORTAGE_CONFIGROOT=/, which is used to resolve DEPEND (the fact that you used --nodeps doesn't prevent the config from being loaded for PORTAGE_CONFIGROOT=/).
(In reply to comment #1) i do not. in this case, we're using PORTAGE_CONFIGROOT to do all installs (it's just native binpkgs) because / is not writable, only /usr/local/ is. so we set PORTAGE_CONFIGROOT=/usr/local and run `emerge -g foo`.