install: default repo to /usr/local/Homebrew.#60
install: default repo to /usr/local/Homebrew.#60MikeMcQuaid merged 1 commit intoHomebrew:masterfrom MikeMcQuaid:usr-local-homebrew
Conversation
| # the group is set to wheel by default for some reason | ||
| sudo "/usr/sbin/chown", "#{ENV['USER']}:admin", HOMEBREW_PREFIX | ||
| sudo "/usr/sbin/chown", "root:wheel", HOMEBREW_PREFIX | ||
| end |
There was a problem hiding this comment.
@tdsmith Yep. Basically: that's the default permissions so if this directory doesn't exist, let's restore them to avoid any weird changes in future.
|
I like this change. Can we think of any circumstances where someone is using |
|
Seems like a good idea, especially with Apple moving to lock down |
|
👍 on the idea. Owning less of |
ohai "This script will install:"
puts "#{HOMEBREW_PREFIX}/bin/brew"
puts "#{HOMEBREW_PREFIX}/share/doc/homebrew"
puts "#{HOMEBREW_PREFIX}/share/man/man1/brew.1"
puts "#{HOMEBREW_PREFIX}/share/zsh/site-functions/_brew"
puts "#{HOMEBREW_PREFIX}/etc/bash_completion.d/brew"
puts "#{HOMEBREW_REPOSITORY}/Library/..."We should be installing all these (except the last, which should probably be replaced with Also, after this change we're going to see weird paths like |
Yeh, this is somewhat possible but unavoidable. Thankfully the case where they use Oh, also: well done @chdiza, you changed the Homebrew default 😀 |
They are all installed by the later
Yep. A bit part of the motivation for this change is being able to move around the contents of our repository without dumping crap in |
Oh, good to know, that's good enough. |
This means that we can move stuff around inside the repository without causing conflicts on `update` or dumping things in `/usr/local` but keep all our existing bottles working as-is.
@apjanke what are you referring to here? |
|
@ilovezfs If nothing else: they reset permissions on every major OS upgrade which is a) annoying b) a bit of a sign that they don't consider our permission changes there to be desirable. |
|
Pretty sure that's basically unintentional since /usr/local doesn't even exist in the default installation. In any case, I'm not sure what's been achieved with respect to /usr/local unless the actual default non-relocatable bottle installation path changes. But increasing encapsulation of the brew repo is a sufficient reason even if I see nothing else being achieved. |
Yep, we're not changing the default there so there will still be |
Well of course, and I believe that's for good reasons. I might be wrong but I think even repairing disk permissions will restore ownership of |
This will remain. |
I'm not talking about changing Homebrew's default. Just saying from Apple's point of view it's certainly not desirable. |
FWIW, I think it would be good to start making a list somewhere of potential new locations so people can start cogitating on what actually is going to work best. |
I don't think that's going to change any time soon (perhaps ever) because it'd require rebuilding all our bottles and then remove us from the default search path from many other tools. |
I bet this "suddenly" becomes a priority for some unexpected reason. 🔮 |
This matches the upstream Homebrew installer changes doing the same (Homebrew/install#60). Don't move people's Homebrew installations around, though; respect their previous location and leave any migration to `brew update`.
|
Sweet! I guess I would like it to be |
If we had the resources I'd like to bottle/test two default prefixes where the bottle wasn't
|
|
It'll likely change in future but the previous reasoning was because you have |
What would already exist in |
|
In any case (heh heh), this is a nice change! 😄 |
I just meant the SIP introduced with El Capitan. Nothing new in Sierra AFAIK. |
|
@MikeMcQuaid does this PR have any consequences for what should/shouldn't be in https://github.com/Homebrew/brew/blob/master/.gitignore ? |
|
@ilovezfs Unfortunately not until at least after we do the migration and possibly never if we allow people to also keep |
|
Yeah that .gitignore freaks me out every time I look at it. |
|
@ilovezfs The best/worst thing is that |
|
Oh that's just stellar. |
Personal temptation is for us to do a hard migration without an opt-out. |
|
@DomT4 Sorry, I mean for people installed in non- |
|
This is great but why not use |
|
@sandstrom Personal preference and to match |
|
Also, look at the name of the organization ;) |
|
Homebrew is awesome so I won't argue (even though I disagree 😃 ). Is it configurable? |
|
I'm also in favour of a small letter 'homebrew', in fact I use it like that since the very beginning: I'm very happy with that setup (keeps things nice and clean and clearly separated), so I'm rather afraid to Will it break/ mess up things? The to-be-killed root "support" is dangling like a Damocles sword too (but no way in hell I'll ever have any user owned files in /usr/local/ on a machine that is shared by multiple accounts) 😱 |
On a case-sensitive filesystem: On a case-insensitive but case-preserving filesystem: On a case-insensitive and case non-preserving filesystem: Excuse me? |
|
@zmwangx thanks! I was thinking more of an install flag/option, a prompt when installing or a cli message upon install pointing to docs/info on how to modify. |
|
@sandstrom We surely won't recommend that so putting it in the install script is out of question. We do link to https://github.com/Homebrew/brew/blob/master/docs/Installation.md#installation from http://brew.sh which gives alternative installation instructions, including installing to custom locations. Now |
|
You can install Homebrew wherever you like but the defaults will stay as-is, thanks! |
This means that we can move stuff around inside the repository without causing conflicts on
updateor dumping things in/usr/localbut keep all our existing bottles working as-is.CC @Homebrew/maintainers for thoughts because this is a pretty big change.