Let's say you are in my situation: you have bought recently a new mac, with Catalina (10.15) and you are switching from an older one that was supporting only High Sierra (10.13).
And you get this error when trying to do sudo port selfupdate.
fmbpro:~ florian$ sudo port -v selfupdate Password: Error: Current platform "darwin 19" does not match expected platform "darwin 17" Error: If you upgraded your OS, please follow the migration instructions: https://trac.macports.org/wiki/Migration OS platform mismatch while executing "mportinit ui_options global_options global_variations" Error: /opt/local/bin/port: Failed to initialize MacPorts, OS platform mismatch
The error is explaining very well what is happening and the recommendation is to visit the Migration website for further instructions.
My recommendation (and tested of course) is to just download the latest macports, the Catalina version, install it, then proceed as normal with port selfupdate command.
Afterwards you need of course to run sudo port upgrade outdated and you get another error, related to Xcode.
fmbpro:~ florian$ sudo port -v upgrade outdated ---> Fetching archive for gperf ---> gperf-3.1_0.darwin_19.x86_64.tbz2 doesn't seem to exist in /opt/local/var/macports/incoming/verified ---> Attempting to fetch gperf-3.1_0.darwin_19.x86_64.tbz2 from https://packages.macports.org/gperf % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 89471 100 89471 0 0 253k 0 --:--:-- --:--:-- --:--:-- 253k ---> Attempting to fetch gperf-3.1_0.darwin_19.x86_64.tbz2.rmd160 from https://packages.macports.org/gperf % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 512 100 512 0 0 6918 0 --:--:-- --:--:-- --:--:-- 6918 Error: The installed version of Xcode (10.1) is too old to use on the installed OS version. Version 11.6 or later is recommended on macOS 10.15. Error: Follow https://guide.macports.org/#project.tickets to report a bug.
Which is normal and you need to update that one too (via App Store). Once you are done with that, run again sudo port upgrade outdated and will be OK this time.
If you get compile errors, follow the migration instructions.
In short, you have to do the following:
fmbp:~ root# port -qv installed > myports.txt fmbp:~ root# port echo requested | cut -d ' ' -f 1 > requested.txt fmbp:~ root# port -f uninstall installed fmbp:~ root# port selfupdate fmbp:~ root# port clean all fmbp:~ root# curl -O https://svn.macports.org/repository/macports/contrib/restore_ports/restore_ports.tcl fmbp:~ root# chmod +x restore_ports.tcl fmbp:~ root# ./restore_ports.tcl myports.txt