migration handling

Arno Hautala arno at alum.wpi.edu
Thu Sep 13 08:04:37 PDT 2012


One of the issues that I see time after time is problems due to users
having not followed the Migration instructions. I think it'd be
beneficial if MacPorts included code to detect a major OS change and
could then aid the user in completing the migration.

Migration consists of:

Reinstall Xcode (and all associated command line utilities, accept
license, etc.)
Reinstall MacPorts (Is this necessary? Or only if you've performed a
clean install? I thought 'selfupdate' was enough?)
Make note of installed ports.
Uninstall all ports.
Clean all.
Install all previously installed ports.

So, the notation of installed ports, uninstall, clean, reinstall
process sounds easily scriptable. This could even include an option to
only reinstall the "requested" ports to save a bit of time, though
unless the user's system was very old and didn't have the requested
status populated this isn't likely to be different than installing
everything. Of most benefit would be automatically restoring the
requested status.

Reinstalling Xcode can't be automated, but the required steps could be
displayed for the user to follow. I know there has been discussion
about determining which version is installed and how the latest Xcode
versions make that a bit harder, but detecting the different steps
would be beneficial (Xcode, command line tools, license).

The same goes for reinstalling MacPorts (if that's actually necessary
instead of 'selfupdate'). MacPorts could print the required steps and
URLs and write out a status file so the next invocation after
reinstall MacPorts (or even the installer) could pick up reinstalling
the ports.

Of course, detecting a major OS change should be easily detectable and
would start off this whole process; either by prompting the user that
MacPorts cannot continue without running 'port migrate-OS' or maybe
even just running the migration if Xcode is already satisfied (and if
'selfupdate' is enough for the MacPorts upgrade).


Thoughts? What's already available for this? What is needed? What
isn't possible?

-- 
arno  s  hautala    /-|   arno at alum.wpi.edu

pgp b2c9d448


More information about the macports-dev mailing list