
Homebrew 2.0.0 released - mikemcquaid
https://brew.sh/2019/02/02/homebrew-2.0.0/
======
bkanber
Know what annoys me about Brew? This just happened last night. I had some
package that required readline 7.x; Brew uses readline 8 now. It's not
possible to simply command `brew install readline@7`. It took me 30 minutes to
figure out that I had to cd into the homebrew-core directory, search through
github commit history to find an old commit that used readline 7, checkout
that specific commit, brew install readline, checkout master again, and then
pin readline.

A package manager should not make it that difficult to downgrade a package.

Otherwise -- homebrew's great.

~~~
frereubu
Possibly my ignorance talking in terms of what you're trying to achieve, but
can't you just do this?

    
    
      brew remove packagename
    
      brew install packagename@versionnumber --force --overwrite
    

I've done this with Node so I'm using 10 rather than 11.

Edit: my pet gripe with brew is the services syntax. I want to use this:

    
    
      brew services httpd restart
    

Not the existing syntax:

    
    
      brew services restart httpd
    

But in general I'm really thankful that brew exists and it's in active
development.

~~~
saagarjha
This only works when the maintainers have decided to keep around the old
version of the software, which is only done for certain popular formulae.
Otherwise they get removed quite quickly from the main tap.

~~~
frereubu
Ah, I see. Thanks for the clarification.

------
6ak74rfy
I love Homebrew, especially since I (recently) realized I could use _brew
cask_ to install all my desktop applications. I liked the analytics feature in
this release. Just the other day, I was looking at alternatives to _official_
Chromium builds that would auto-update. I stumbled upon _freesmug-chromium_
but didn't know how actively it is used by the community. Now I know.

~~~
maximegarcia
I tried to do that for smtg I can't remember. Turns out that it added a lot of
deps and compiled the app. I didn't liked it and uninstalled it and brew kept
all the deps installed.

It seems it misses an "automatically" installed flag in order to remove the
deps I didn't have specifically installed myself in the first place. Would be
very great for brew to have that.

Now I avoid trying new apps through brew.

An indication of the formula downloading a pre-built binary or compiling it
would be nice too, btw.

~~~
mikemcquaid
> It seems it misses an "automatically" installed flag in order to remove the
> deps I didn't have specifically installed myself in the first place. Would
> be very great for brew to have that.

You can use `brew bundle dump` and `brew bundle cleanup` to achieve this (I
often do the same).

------
ComputerGuru
The argument over the removal of options in this thread [0] is brutal. Very
intentionally user-hostile move, repeatedly disguised as being in their
overall interest. It left me not feeling very good about the direction the
project is taking.

[0]: [https://github.com/Homebrew/homebrew-
core/issues/31510](https://github.com/Homebrew/homebrew-core/issues/31510)

~~~
Hamuko
Just don't say how it's a user-hostile move and that you don't feel confident
about how Homebrew development is handled, since you will be blocked from
accessing the Github repositories.

------
ihuman
Is there a more verbose explanation about why they’re moving away from
compiling packages from source? All the explanations I’ve seen make it sound
like that’s the obvious direction it should go, but it’s not obvious to me.

~~~
alexandernst
Maybe ask the question the other way around. Why should they keep compiling
everything from source? What are the benefits?

~~~
black-tea
You get native binaries, can choose optional features and dependencies and you
can easily apply your own choice of patches. That's my view as a gentoo user
anyway; I don't know how much of that homebrew actually supports.

~~~
ninkendo
What does “native binary” mean?

~~~
black-tea
Compilers like GCC can produce code specifically for your CPU such that it
uses all of the special features you might have like SSE, AVX etc. When
binaries are made for general use they have to be compiled with a generic
feature set so might not make best use of your CPU.

~~~
ninkendo
So can a cross compiler, no?

~~~
black-tea
If you know the exact flags for your CPU then you can compile for it on any
other CPU using a cross compiler line GCC, yes. But that doesn't help because
in practice you'll just find one binary per architecture, not per CPU.

------
corybrown
Wow, Linux support. I guess that's useful for those times when the OS package
manager is out of date? Or is it in order to not run as root?

~~~
misnome
It’s very useful when on a remote login where you don’t have root but want
more modern software e.g. academic HPC clusters with shared filesystems, which
tend to have extremely “conservative” OS versions (we are stuck on RHEL6 for
the forseeable future).

I’m not aware of much else that fulfills this niche well - conda seems very
very tied to precisely tested version combinations, and (from what I remember
- tried and had problems) nix seems to want root/system level daemons.

~~~
messe
pkgsrc[1] is portable to most Unix(-like) systems, and can run as a non-
privileged user, so that would likely work as well. I'd trust it more than
homebrew anyway.

[1]: [http://pkgsrc.org/](http://pkgsrc.org/)

~~~
devzer0
> I'd trust it more than homebrew anyway.

I'm curious why you feel this way.

------
nisuni
Remember that Homebrew uses Google Analytics by default unless you explicitly
disable it.

~~~
aboutruby
Isn't this punishable by GDPR?

~~~
Hackbraten
IANAL but I believe no personal information is involved.

------
sn41
I love brew. But I have heard a lot of complaints against it, and arguments
that Nix (and probably Guix) is better. I tried it once, and had a tough time
getting my old scripts to find the exact versions. I gave up on Nix. Can
someone eli5 why Nix-like approaches are far superior to systems like brew?

~~~
splintah
Nix is just way more reliable than Homebrew, because it does not use system
tools, but rather builds the dependencies by itself (including, for example, a
C compiler). Furthermore, dependencies will not be overwritten if a different
package requires the same dependency, but another version of it, so packages
don’t break each other.

------
wl
You should not use Homebrew. The maintainers are not trustworthy.

[https://chr4.org/blog/2016/04/26/homebrew-betrayed-us-all-
to...](https://chr4.org/blog/2016/04/26/homebrew-betrayed-us-all-to-google/)

~~~
Gaelan
TLDR: they turned on Google Analytics.

~~~
sneak
...without consent or opt-in.

~~~
coldtea
Because most other websites/services ask for consent for their analytics?

~~~
sneak
Important consideration: homebrew is neither a website nor a service. It is a
local software, a package manager, and quietly enabling phone-home analytics
in an update after previously not doing such has a different threshold for
“informed consent”.

~~~
Hackbraten
How exactly is Homebrew not a service? We donate hours of work each week in an
honest effort to make the best package manager we can for our users. Analytics
help us decide how to prioritize our work.

It’s also literally the opposite of quietly enabled [1] [2].

[1]
[https://github.com/Homebrew/brew/blob/e32c1515432a938093d5ef...](https://github.com/Homebrew/brew/blob/e32c1515432a938093d5ef1d8c4b4408991873df/Library/Homebrew/cmd/update-
report.rb#L53-L62)

[2] [https://docs.brew.sh/Analytics](https://docs.brew.sh/Analytics)

~~~
wl
> How exactly is Homebrew not a service?

Is youtube-dl a service because it needs to be constantly updated, at great
effort, to deal with new countermeasures and the like? Still looks like
software to me.

If you were running the software for me (e.g. Gmail), then maybe Homebrew
would qualify as a service.

> It’s also literally the opposite of quietly enabled

I discovered it when my firewall showed me an outbound connection to Google
analytics. Homebrew spews so much stuff to the console, it's not something a
regular user would read unless they looked for it. That was hardly sufficient
disclosure.

You guys could have prompted for consent. You didn't. You still refuse to. And
you won't entertain any suggestions that you do so unless it comes from a
contributor. As I said in my original comment, your collective lack of
judgement and refusal to consider the opinions of users is why I don't find
you guys to be trustworthy anymore. I encourage everyone to find alternatives.

~~~
Hackbraten
> If you were running the software for me

I’m not sure on whose systems you believe packages are built and tested, and
from whose systems you feel Homebrew downloads bottles.

> it's not something a regular user would read unless they looked for it. That
> was hardly sufficient disclosure.

That notice was colored, it was typeset in bold, it was surrounded by
newlines, and it sounded an audible bell. Blaming Homebrew for the fact that
you missed that message says more about you than about Homebrew.

~~~
wl
> I’m not sure on whose systems you believe packages are built and tested, and
> from whose systems you feel Homebrew downloads bottles.

Is Ubuntu a service because Canonical builds and tests packages and hosts
package repositories? I don't think many people would make that claim.

> That notice was colored, it was typeset in bold, it was surrounded by
> newlines, and it sounded an audible bell.

That's not the notice I got.

"Anonymous aggregate user behaviour analytics documentation:
[https://git.io/brew-analytics"](https://git.io/brew-analytics"). No bold. No
bell.

The notice you linked to was added in reaction to the outcry. The bold and
bell were added at a later date.

The Homebrew maintainers continue to refuse to do the only ethical thing and
PROMPT THE USER instead of making assumptions one way or another.

------
Longhanks
Terminology is still confusing (for no apparent reason), Homebrew is still
extremely slow compared to Linux package managers.

Otherwise, I love it and it’s basically the one reason development on macOS is
not a major PITA. So thank you to everyone making that possible!

------
joemaller1
I didn't know Windows support was on the roadmap. Homebrew has been a critical
piece of my macOS toolkit for nearly a decade but I've been working cross-
platform more lately so this could be great for me. But what about Chocolatey?

~~~
Corrado
The Windows version only supports Linux apps, not native Windows apps. So it
doesn't really replace Chocolatey.

------
dilap
Perfect timing, as I'm setting up a new box today. Homebrew is great. Also
really appreciate the inclusion of reasoning behind changes in the release
notes.

------
SZJX
So far the Homebrew experience has been better for me than any other Linux
distribution's package manager, except for Arch, which is still unparalleled.
The biggest problem of Homebrew is how incredibly slow it is, though I guess
this will stay for a long time unless a fundamental overhaul takes place.

------
cr3ative
It's a shame it still doesn't play well with more than one user on a system
trying to install packages.

I have a work user and a personal user on my laptop. Brew won't let me use
both at the same time without getting my hands dirty with creating groups, and
even then it's not supported behaviour.

~~~
ariabuckles
I ended up creating a homebrew user and giving my personal user sudo access to
the homebrew user, which has seemed to work well so far (I may have had to
give group read/execute access to all of /usr/local though)

~~~
Hackbraten
Thanks for the tip, I didn’t think of that! I need to use Homebrew from two
different users, too. Definitely going to try this.

------
sys_64738
Love this for WSL. Makes Microsoft Windows 10 even more cool!

~~~
JoelTheSuperior
May I ask why? Is apt not sufficient?

~~~
sys_64738
Think of it like a virtual env in python. You're installing within your own
virtual env rather than system wide like apt.

------
jancsika
OSX app bundle is to OSX as ____ is to Linux.

Can the blank be filled in?

If so I'd love to use Homebrew to manage dependencies on both Linux and OSX.
(msys2 has my Windows build covered.)

~~~
syntheticcdo
Flatpak?

------
wintorez
Happy about support for Linux!

------
unicornporn
I spent a year with Ubuntu MATE after over a decade of macOS use. The thing I
missed the most was the hassle free installation of packages via brew. This
made me very happy. I hope it will work as friction free as brew on macOS.

~~~
hibbelig
I don't know Ubuntu MATE specifically, and it's been a long time since I used
Linux on the desktop, but I'm surprised that "apt install foo" has more
friction than "brew install foo". Both work very nicely in my experience.

What is the hassle you saw with Ubuntu MATE?

~~~
unicornporn
Every app I use is available via brew.

A lot of software that I use weren't available via APT so I had to go hunting
via snap, flatpak and pip. Suddenly I had four different package managers to
maintain and update. Every time I updated Ubuntu it was a mess to update where
what repositories to update to. I was never successful in keeping my software
up to date without a lot of googling and problem solving and it sucked.

------
itwy
Someone is about to post how the original author was not hired by Google...

~~~
asaph
Original source:
[https://twitter.com/mxcl/status/608682016205344768](https://twitter.com/mxcl/status/608682016205344768)

