You can't get kernel-specific things like strace, but they do have just about everything else. The big sell for me was being able to install the GNU versions of everything.
Macports keeps everything in /opt, so you also never have to worry about it clobbering anything that MacOS expects to work in a certain way.
edit: some background on Macports vs Homebrew - it's basically a vi/emacs kind of a thing. Homebrew utilizes the MacOS system stuff a fair amount, and installs everything to /usr/local. Macports tries to keep everything fully separate, and installs into /opt.
My personal experiences with Homebrew weren't great, but others will probably have the opposite opinion.
eg for htop: `sudo port install htop`
This means:
1) It is a security hole; any application can now modify system-wide applications at any time.
2) You can't have multiple users able to use homebrew.
I was expecting homebrew to be something similar to apt/yum/etc, but this makes it pretty fundamentally different.
How does Macports handle this? Does $USER still need write access to /opt?
It's not the worst approximation of ports, but it doesn't share the quality and care that goes into package maintenance and dependency management.
``` sudo chmod -R 770 /usr/local/ sudo chmod -R +a "group:Local allow delete,readattr,writeattr,readextattr,writeextattr,list,search,add_file,add_subdirectory,delete_child,file_inherit,directory_inherit" /usr/local/ ```
I remember sometimes running into permissions issues but nothing re-running that command didn't fix.
I moved away from homebrew, to compiling my own software on macOS which I just put in ~/build. I don't use sudo make install since I own the ~/build folder.
What am I doing wrong in this case?
no, this is not required anymore... https://github.com/Homebrew/brew/commit/a2f19f0a675f7cb384b4...
> You can't have multiple users able to use homebrew
what i did is i run Homebrew as a user i called Admin and when logged in as another user i simply do a 'su - admin' to run the brew commands..
See this change: https://github.com/Homebrew/brew/pull/896
First thing I installed in the mac store. Just like on linux, it just works and I get all my favourite tools.
Doesn't help much with dtrace though!
Alternative to strace would be dtruss, which is implemented through dtrace.
PATH=/usr/local/opt/coreutils/libexec/gnubin:$PATH
"gnubin" contains the all utilities with the original names.Example: `gsed` actually parses whitespace the way I think it will; the builtin `sed` does not.
to be fair, you should probably call the GNU behaviour "GNUisms". The BSD behaviour is the historical POSIX behaviour. The GNU behaviour is, in a twisted sense, the result of embrace, extend and extinguish by the GNU people :-)
[1]: The most notable thing is that GNU generally allows flags to come before or after non-flag arguments, where POSIX requires them to come before.
I'd been using mostly Linux on the desktop since 1996, I manage servers for a living and couldn't live without a terminal. That's the nerdy side.
On the other hand, I was serious enough with photography and electronic music production to need best of breed tools, which are still largely Windows and Mac-only to this day.
There's also a time for everything, and there are days when regardless of your computing skills, you need your creative person/end user hat on and apps that "just work" to keep your right brain fully focused on the end result (e.g. "No thanks, I'm not going to get distracted compiling some Gimp plugin to get red-eye removal", which may or may not have changed since I last tried)
MacOS, in spite of its recent slight drop in quality, is still second to none in satisfying all these requirements at once.
This is the true 'unix philosophy.'