#MACPORTS OR FINK INSTALL#
Install the Xcode command line tools (free from Apple) by doing sudo xcode-select -install.įrom, choose the. Here are instructions for setting up a 64-bit Macports, If you are upgrading from a previous version, see. I switched from Macports to Homebrew in September 2021 on Big Sur (macOS 11.6)īecause I had trouble installing programs using MacPorts. You can use either or use both and install some packages with one tool and some with the other. There's enormous room for improvement, but it's not going to happen with a project like homebrew following the exact same footsteps of the projects that came before - and making the exact same mistakes.Macports provides hundreds of Open Source Unix tools compiled for OS X, free. They do these things because decades of experience have demonstrated the depth of the rabbit hole and the requirements necessary to provide a generally useful solution. MacPorts, Fink, apt-get and friends don't do things in a certain way because they're stupid, which seems to be so blithely implied in the homebrew documentation. The fact is that this problem space is an unexpectedly deep rabbit hole, and it's very easy to peer down it and think you've solved it, when in fact you have no idea how deep the rabbit hole actually goes.
If you want to run your own portfiles, you can do so through a myriad of equivalent mechanisms (including git). MacPorts supports portfiles places in arbitrary file://, rsync://, svn://, etc locations. Fork with Git The formula are all on git, so just fork to add new packages, or add extra remotes to get packages from more exotic maintainers. More importantly, the dependencies would grow stale and often be missing requested functionality, leaving users in the lurch and requiring the introduction of "duplicate" dependencies to the port system. MacPorts and Fink used to try to leverage the operating system dependencies, but the fact was that Apple would break those dependencies in minor releases and in ways that were incompatible with the user-installed software. Homebrew isn't, and as a result everything you install has less dependencies and builds significantly faster. MacPorts is an autarky - you get a duplicate copy of zlib, OpenSSL, Python, etc. Copy over the port file (port cat ) to a new local directory, tweak it a bit, and run 'port install' from the directory. MacPorts supports your own local port files. DIY package installation MacPorts doesn't support the beta version? Need an older version? Need custom compile flags? The Homebrew tool-chain is carefully segregated so you can build stuff by hand but still end up with package management. In MacPorts, ports are just Tcl scripts with a very clean DSL. In later versions, MacPorts supports acquiring/dropping privileges as necessary to run non-root when possible. You can still run MacPorts as non-root, but some things (like creating a new user for postgresql) will break. MacPorts used to not require sudo, but the fact is that users wanted things like launchd startup scripts installed and daemon users created. We recommend not-see the relevant later section.
You can have multiple versions installed at once (but only one activated). Look at /opt/local/var/macports/software - every package in their own versioned subdirectory, hardlinked to /opt/local and managed automatically by MacPorts.
#MACPORTS OR FINK SOFTWARE#
It also means you can easily install multiple versions of software or libraries and switch on demand. You can uninstall with rm -rf, list with find, query with du. This way packages can be managed with existing command line tools. usr/local/Cellar/wget) and then symlinked into the Homebrew prefix (eg. The GoboLinux approach Packages are installed into their own prefix (eg. However, moving UNIX software from the prefix it was built with will rarely work. Homebrew never changes any files outside of its prefix.įink and MacPorts do the same thing.
You can even move this directory somewhere else later. Like ~/.local or /opt or /lol if you like. Or… install anywhere! You can actually stick this directory anywhere. The problem was that eventually the implementation needed to run some pieces of native code, and a build process was born. This is how DarwinPorts started out, too. Copy the contents of this directory to /usr/local.
This is a problem that is very easy to solve 5% of. Yes - if you were around when fink and macports (formerly darwinports) were nascent projects, homebrew will seem very, very similar.