MacPorts base can be compiled on Linux (and possibly other POSIX-compatible systems) where it is mainly used to set up mirrors and generate support files for installations on macOS. In practice, installing ports only works on macOS. MacPorts is developed on macOS, though it is designed to be portable so it can work on other Unix-like systems, especially those descended from the Berkeley Software Distribution (BSD). Allows you to create pre-compiled binary installers of ported applications to quickly install software on remote computers without compiling from source code.Confines ported software to a private “ sandbox” that keeps it from intermingling with your operating system and its vendor-supplied software to prevent them from becoming corrupted.Provides for uninstalls and upgrades for installed ports.Installs automatically any required support software, known as dependencies, for a given port.This means that in your example the output would look like this: A:✕īut B will take a LONG time, and C, D, E and F will be very fast because they have already been upgraded during B. note that this will not show the dependencies being installed, but you can tail the log to see what is happening*.if the upgrade was successful I print a "✓" and a newline, otherwise a "✕" and a newline.then I try to upgrade it non interactively, and save the output and errors.for every port I print the port name and a semicolon (without newline ).it might not be pretty but it works: sudo bash -c 'for port in `port outdated 2>/dev/null | tail -n +2 | awk '\''' (tail removes the line "The following installed ports are outdated:") Suppose also that there are too many ports to upgrade them individually. Suppose there are too many ports that fail to exclude them individually. This works if only one independent port fails, but what if I have two or three ports (out of dozens) that fail? Could I do something like, sudo port upgrade outdated and not A and not C and not E (etc.)? I could try sudo port upgrade outdated and not A.I would have thought that would be the answer to this solution, but multiple devs caution users not to use it unless they really understand what it does. (.or is it?) Is there a way to do it safely? Sorry!) In my case above, installing Port G after Port A fails wouldn't seem to be problematic. (The links he includes support this, but it gets too technical for me. The MacPorts dev says that there's a reason MacPorts doesn't continue.I don't buy the answers on that page, however: This is probably the same as this one in spirit: MacPorts: Continue installing other updates after error. How can I tell MacPorts to continue installing all installable ports that it can install without error? Now, because a single port won't install, all the rest of my ports are out-of-date until this port is fixed. The fact that A won't install has no effect on any of the other ports. I see this as an inconvenience, because the other outdated ports could very well be working fine. So, it would install the ports in this order: A, D, E, F, C, B. To the best of my understanding, when MacPorts runs ( sudo port upgrade outdated), it installs the ports in a dependency tree sorted by alphabetical order. Suppose for simplicity that all of them are "requested". Suppose I have outdated Ports A, B, C, D, E, F and G.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |