port selfupdate fails after upgrading to next OS X version

port selfupdate fails with the following error message:

port -d selfupdate
can't find package machista 1.0
    while executing
"package require machista 1.0"
    (procedure "mportinit" line 487)
    invoked from within
"mportinit ui_options global_options global_variations"
Error: /opt/local/bin/port: Failed to initialize MacPorts, can't find package machista 1.0

What can I do to fix it?


Solution 1:

After upgrading to Lion one needs to reinstall macports as noted here:

Migrating a MacPorts install to a new major OS version or CPU architecture

An installation of MacPorts and the ports installed by it are only designed to work on a single OS release and a single CPU architecture. If you upgrade to a new OS version (e.g. from Leopard to Snow Leopard) or migrate to a new machine with a different type of CPU (e.g. PowerPC to Intel), you may get lucky and have your ports keep working, but in general, things will break. If you are only upgrading Xcode (e.g. 4.1 to 4.2 on Lion) but not the major OS version or CPU architecture, you do not need to reinstall ports as described below.

https://trac.macports.org/wiki/Migration