I want to update all my outdated ports, but as libgcc-devel takes upwards of 3 hours to build, I want to exclude it. The tip I read on the internet is applying logical operators. So I run

$ sudo port upgrade outdated and not libgcc-devel
--->  Computing dependencies for libgcc-devel
--->  Building libgcc-devel

To my frustration, it silently ignores that part of the command. I tried with *gcc* as well, to no avail. What is the correct syntax for this?

The documentation states that this works with uninstall, but does not mention upgrade.

$ sudo port uninstall inactive and not <portname>
  • I would run port dependents libgcc-devel. Do any outdated ports need libgcc-devel? – fd0 Mar 3 '16 at 16:02
  • @fd0 You're right, that seems to have been it, should've thought of that. I did not expect any port to depend on it, as those that need it typically use libgcc, but since the tow are incompatible I must have done something to have them use that one. – oarfish Mar 3 '16 at 17:17
  • 3
    Your idea using logical operators is good -- now you just need to combine it with pseudo-port expressions and you're done: port upgrade outdated and not rdependentof:libgcc-devel. If libgcc-devel is outdated, you might also want to exclude that explicitly, since libgcc-devel is not an rdependent of itself. – neverpanic Mar 4 '16 at 21:50
  • @neverpanic Thanks for the advice. I had this same problem with the capstone port on Mojave, where it wasn't upgrading properly for some reason. I was able to get what I needed by doing what you said. Specifically: port upgrade outdated and not rdependentof:capstone and not capstone – GDP2 Sep 7 '18 at 7:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.