Fixing borked macports
The "no destroot found at" error occurs when installation from a binary archive failed earlier (at least that's what I think, I haven't dug into it and fixed it because I couldn't reproduce so far).
Anyway, the solution for that isn't to do stuff manually, but to run sudo port clean $portname
and try again. That's the first thing you should try whenever a build fails, and it fixes 100% of the "no destroot found" errors.
Btw, you shouldn't use the -p
switch when installing or upgrading stuff. It's considered harmful in this case. It isn't being removed because it is useful with some operations that don't depend on each other, such as sudo port -p fetch outdated
. MacPorts often forces rebuilds of ports without changes in order to pick up an updated version of a dependency. If you run sudo port -p upgrade outdated
that can lead to a rebuild even though the the updated version of the dependency failed to build, defying the point of the upgrade.
Your installation of gawk failed because your /opt/local/bin/xz
binary is broken and it failed to extract the source because of that:
:info:extract dyld: Library not loaded: /opt/local/lib/libiconv.2.dylib
:info:extract Referenced from: /opt/local/lib/libintl.8.dylib
:info:extract Reason: Incompatible library version: libintl.8.dylib requires version 8.0.0 or later, but libiconv.2.dylib provides version 7.0.0
Ironically, this exact situation can happen when you run upgrade with -p
. To fix this specific error you need to rebuild the gettext
port: sudo port -nf upgrade gettext
. You should also run sudo port rev-upgrade
to discover similar problems and fix them automatically (or at least attempt to).
As a side note; if Python related packages shows destroot errors, check the double installation with pip. In my particular case, i had py27-funcsigs as a port package installed and funcsigs also installed with pip. I had to remove pip version first.
sudo -H pip uninstall funcsigs
sudo port clean py27-funcsigs
sudo port install py27-funcsigs
hope this helps.