Getting rid of port binaries in /software

Nicolas Martin nicolas.martin.3d at gmail.com
Tue May 17 15:38:24 PDT 2016


> On May 17, 2016, at 5:15 PM, Clemens Lang <cal at macports.org> wrote:
> 
> On Tue, May 17, 2016 at 10:58:56AM -0400, Nicolas Martin wrote:
>> I have looked for real answers regarding this question through the
>> mailing list, but did not really understand the purpose of these
>> files.
> 
> MacPorts always keeps a tarball of the files installed by a certain
> port in this directory. This allows you to switch between installed
> versions or between ports that would otherwise conflict without
> re-installing them completely. port activate/port deactivate implement
> this.

Is there a way to have MacPorts behave so as to completely reinstall a port if one needs to ? 
I would prefer to wait through the process of building and activating the port again if I need to, than to lose quite a lot of space with duplicated binaries I almost never have to activate again.

> The rationale here is that after an update you can test the updated
> version of a software for a while, and if you notice it causes problems
> you can file a ticket and easily go back to the old version with a
> simple
>  sudo port activate @oldversion

I understand this, but if you never have to revert to an older version of a package, this is quite a waste of space.

> 
> MacPorts used to keep these files in a directory and just hard-link them
> into $prefix, but that (a) means modifications to files in $prefix
> affect the supposed-to-be prinstine copy, and (b) isn't easy to download
> as pre-built binary. For this reason, we switched to tarballs a while
> back and now provide pre-built binaries for some of these tar balls.
> 
>> I have almost 5Gb of archives (tbz2) in
>> /opt/local/var/macports/software.
> 
> You seem to have quite a few ports installed. My software directory is
> 3.4G with 652 installed ports.

Well clang and llvm occupies a whooping 1.2G by themselves alone.

> 
>> I have already run the port uninstall inactive command, so from my
>> understanding, what remains in this path is from currently active and
>> used ports.
> 
> Correct.
> 
>> What I don’t understand, and does not seem to be clear from any posts
>> I have read regarding the matter, is why should these archives be
>> kept?
> 
> If you delete those archives you can no longer deactivate and
> re-activate a port. In addition to the use case above, this is also
> helpful when one of the files installed by the port was corrupted for
> some reason -- just de- and re-activate it.

I suppose that if I were to manually delete those archives, MacPorts would not be so kind as to detect this and just start the build process over again, if he needs to ?

Would it be safe then to have some of /opt/local/var/macports symlink-ed on an external hard drive ? 
I would only plug the drive if I need to activate/deactivate those old (and large) ports, but small ports would be stored on my main drive.
Would MacPorts still function with such a setup ?

Thanks,
Nicolas


More information about the macports-users mailing list