On Apr 11, 2020, at 02:02, Lothar Haeger wrote:

>> The prebuilt ports on the buildbot are not building their ports to go into 
>> /Applications, so therefore they don’t match your setup — so you can’t use 
>> them (even though many would be OK, it’s an all-or-nothing thing.
> 
> Ok, so what if I want to change back to the default and set 
> "applications_dir" to "/applications/MacPorts"? Will this break the already 
> installed ports somehow? Would I have to move them manually to the default 
> location? Or uninstall and reinstall them? Or would that only affect new 
> installs and updates?

If you change a setting in macports.conf, you should uninstall and reinstall 
any ports affected by that setting.

In this case, you should uninstall and reinstall any MacPorts ports that 
installed anything in /Applications.

If MacPorts warns you that uninstalling a port will break another port, it's 
fine to bypass that warning using the -f flag in this case, since you'll be 
reinstalling the port after uninstalling it and thus fixing any breakage.

Since /Applications also contains apps not installed by MacPorts it's not as 
simple as just looking into that folder in the Finder, but you can get a list 
of ports like this:

port -q contents active | sed -n -E 's,^[[:space:]]*(/Applications/),\1,p' | tr 
'\n' '\0' | xargs -0 port -q provides | sort -u | tee 
ports-that-install-apps.txt

This will show you all the ports that install applications, but it is also 
possible for a port to use an application installed by another port. The list 
produced by the following commands should include those ports:

port -p file active | sort -u | xargs grep -El '\${?applications_dir' | sed -E 
's,^.*/([^/]+)/Portfile$,\1,' | sort -u | tee ports-that-use-apps.txt

To combine the two lists into one:

cat ports-that-install-apps.txt ports-that-use-apps.txt | sort -u | tee 
ports-that-install-or-use-apps.txt

To uninstall those ports:

xargs < ports-that-install-or-use-apps.txt sudo port -f uninstall

To reinstall them:

xargs < ports-that-install-or-use-apps.txt sudo port install

Reply via email to