This is a bad idea if your goal is to be productive and use that tool as designed and documented. But you can learn a ton by disabling SIP on a test machine you don’t need and seeing what breaks when you modify the tool. If your goal is to learn, go for it. Here is why it’s likely “non-optimal” or “extra work” to force your modifications into /usr
and some very good resources on the history of where to add customizations on unix.
Apple protects /usr
via system integrity protection and the closest place to / that’s encouraged to write files is /usr/local
Debates about package managers (and the people that write and spend a lot of time using them) can be passionate (and sometimes prickly). Where to store Unix or command line files can be as opinionated in terms of preference as those debating text editors like [ed|sed|vi|emacs|nano|pico]
as compared to newer programming editors with more graphical features. Choosing for what you intend to optimize and how you prefer to learn and work is a highly personal choice and not something that is strictly right or wrong.
- What is standard for OS X filesystem? e.g. /opt/ vs. /usr/
- Has Unix directory usage or policy changed in High Sierra?
- Where should I install new (source code) software on a Mac?
This answer particularly has some good thinking and clear discussion as well as the above questions. There would have to be a very compelling basis to diverge from the standard for homebrew even if you didn’t but heads with Apple on SIP in the process (which is what happens in /usr
).
With the introduction of ARM and Intel tooling to Homebrew, the defaults are now /opt/homebrew
and usr/local
for brewing.