Are there any downsides to using Homebrew as a package manager on Linux?
I'm especially concerned about it being somehow broken, unwieldy, insecure or privacy-invasive.
Case in point; at times I have to rely on a Chromium-based browser if a website decides to misbehave on a Firefox-based browser. Out of the available options I gravitate towards Brave as it seems like the least bad out of the bunch.
Unfortunately, their RPM-package leaves a lot to be desired and has multiple times just been awful to deal with. So much so that I have been using another Chromium-based browser instead that's available directly from my distro's repos. But..., I would still switch to Brave in an instant if Brave was found in my distro's repos. A quick search on repology.org reveals that an up-to-date Brave is packaged in the AUR (unsurprisingly), Manjaro and Homebrew. I don't feel like changing distros for the sake of a single program, but adding Homebrew to my arsenal of universal package managers doesn't sound that bad. But, not all universal package managers are created equal, therefore I was interested to know how Homebrew fares compared to the others and if it handles the packaging of the browser without blemishing the capabilities of the browser's sandbox.
P.S. I expect people to recommend me Distrobox instead. Don't worry, I have been a staunch user of Distrobox for quite a while now. I have also run Brave through an Arch-distrobox in the past. But due to some concerns I've had, I chose to discontinue this. Btw, its Flatpak package ain't bad either. But unfortunately it's not official, so I choose to not make use of it for that reason.
I'd advise against using Brave, but that's a different topic.
Just use the Flatpak. Do not care if it's official, most packages in traditional package managers are not packaged officially, yet we use them all the time. Check the Flatpak repo instead to see if there's something wrong.
Maybe check ungoogled chromium too while you're at it.
most packages in traditional package managers are not packaged officially, yet we use them all the time.
While there's definitely truth in this, aren't we already trusting the repos of traditional package manager by choosing to use the associated distro? So, by e.g. choosing to use Debian , you've already (somehow) accepted their packages to be 'thrustworthy'. We already trust the developers of the apps/binaries we use. Therefore, we have two sets of parties we trust by default. I would rather not increase the amount of people I have to trust for software, but I can understand why others might differ on this.
The bad practices of its CEO doesn't inherently write off the software, instead the software's merits should do the talking. Which Chromium-based browser would you recommend based on its merits?
The bad practices of its CEO doesn’t inherently write off the software
Ah yes, the CEO with his little influence on the products from his company...
Which is Brave collection "donations" and then keeping them, then? Is it a CEO bad practice or a software bad practice?
instead the software’s merits should do the talking.
You'd get a Shawarma from a Hamas-run restaurant, right? Sure, they swear death to all infidels but their cooking is so authentic and great.... Who cares that the restaurant funds them!
Which Chromium-bases browser would you recommend based on its merits?
Opera, Vivaldi, ungoogled-chromium, and some others don't pull the same shit.
You already use an arch container that has access to the AUR, which has literally every package, available on linux.
Also, if anything, flatpaks are THE official (universal) packaging format for Linux, it's the most widely adopted and most well integrated of the universal packaging formats. I'm not saying that homebrew is bad, just why bother with it when you've got 100 other packaging formats that are all better...
if anything, flatpaks are THE official (universal) packaging format for Linux
I don't deny that, I make good use of a ton of flatpaks on my system. I also believe that it's the best we have. And I would literally switch to Brave as a flatpak if it would satisfy the following:
Be official and thus maintained by Brave itself.
Not having to forego its own more powerful sandbox due to (hopefully) current restrictions of Flatpak. Yes, you read that correctly; while flatpaks are arguably the safest way to consume most applications, this doesn't apply to apps that actually have stronger sandboxes which had to be 'slimmed down' when packaged as a flatpak. Thus, currently, for maximum protection, one simply can't rely on flatpaks for their Chromium-based browsers. If you choose to do so and it has worked out for you wonderfully; that's awesome, I've been there and enjoyed the experience as well. But, I can't justify it for myself any longer.
I rely on flatpaks for all non-firefox browsers and haven't had any issues with them, I've used the brave flatpaks specifically for almost a year now and no issues...
Brave is worse than Chrome. Affiliate link auto injection, unauthorised selling is copyrighted data, their own unblockable ad network, etc. Use Firefox.
Their business-practices sure do leave a lot to desire, which actually does hurt their trustworthiness; arguably their most valuable asset as a privacy-first browser. Hmm..., good food for thought, thank you!
Use Firefox.
I mostly do already 😅, from OP: "at times I have to rely on a Chromium-based browser if a website decides to misbehave on a Firefox-based browser".
What does Brave give you what the other Chromium based browser doesn’t have?
Brave is known to take privacy (and security) more seriously than its contenders. It's therefore unsurprising to find it recommended by Privacy Guides. Some of its unique features related to privacy can be found here.
Maybe you can install add-ons instead?
Excellent extensions like uBlock Origin heavily rely on Manifest v2 in order to do their bidding. Unfortunately, Chromium intends to stop supporting it. Which will inevitably lead to many Chromium-based browsers to follow the lead and stop supporting it as well. At least Brave has confirmed multiple times to support Manifest v2 longer. Furthermore, I'm not aware of any extension that does an equally excellent job at spoofing your fingerprint randomly. Though, I'd love to be corrected on that.
Brave is known to take privacy (and security) more seriously than its contenders. It's therefore unsurprising to find it recommended by Privacy Guides.
At least in the privacy community, Brave isn’t super popular. It feels more geared towards the "hyped crypto early adopters". Brave inclusion in privacy guides has always been controversial.
Brave is ultimately an advertising company, they base their business model in ads. And everyone knows how bad that can turn.
Ungoogled Chromium on the other hand takes patches from brave and other Chromium based browsers, removing every bit of telemetry and giving you the cleanest experience you can get on Chromium, without relying on a shady company.
Brave is known to take privacy (and security) more seriously than its contenders.
Nice, their marketing works. If you really cared about privacy you'd probably use something like Librewolf, which is not proprietary.
Excellent extensions like uBlock Origin heavily rely on Manifest v2 in order to do their bidding. Unfortunately, Chromium intends to stop supporting it.
It works without issues in Firefox and similar browsers like Librewolf.
My only experience with homebrew is on macOS and I’ve switched to MacPorts there. Homebrew did some weird permissions things I didn’t care for (chowned all of /usr/local to $USER, if I’m remembering right). It worked fine on a single user system, but seemed like a bad philosophy to me. This was years ago and I don’t know how it behaves on Linux.
I also prefer Firefox, but when I need a Chromium alternative for testing, I opt for the flatpak (or the snap) version personally.
Based on what I saw on macOS I wouldn't touch Homebrew with a 10 feet pole. We have proper packaging systems in the Linux world. The Chromium snap is supported by Canonical so that's a great candidate for anything that comes with snap or can use snap. If I couldn't use snap, I'd use the Chromium flatpak from Flathub.
Based on what I saw on macOS I wouldn’t touch Homebrew with a 10 feet pole. We have proper packaging systems in the Linux world.
Could you please elaborate on how the packaging in the Linux world is better? I can imagine why, but I'd rather have a better-informed idea on the matter. Thanks for your input!
The Chromium snap is supported by Canonical so that’s a great candidate for anything that comes with snap or can use snap. If I couldn’t use snap, I’d use the Chromium flatpak from Flathub.
I use Chromium from my repo already, but as stated in the OP; I would switch in an instance to Brave if I could.
Nix is definitely cool and I already have it installed on my system. Unfortunately, even Nix has trouble with keeping Brave up-to-date at all times. It's still on 1.59.120, while Brave has had three releases since. It took about 3 days after the release of version 1.59.120 for them to release it on their repos. As you can see, it leaves a lot to desire.
It's a community maintained repo. The possibility of updating it yourself is possible. The master branch is updated to the 1.59.124, which came out a week ago. And was updated around the same time. 1.60.110 was just released 1 day ago. You can update it yourself. After all, it's supposed to give you a great default state to fall back to, not keep you on the bleeding edge of releases.
I use a few packages from Homebrew and don't have any problems with it. By default it installs itself into /home/homebrew or something which I didn't like so I put it into ~/Applications/Homebrew instead using these steps. It warns that you may be forced to compile software if you do it this way but I'm down to clown so whatever.
The biggest problem I have with it is that you'll need to keep it updated alongside your regular packages, which I do by aliasing a simple upgrade command that runs all my package manager upgrades.
I would also recommend ungoogled-chromium as an alternative to Brave, which does have its own official Flatpak (not marked as such but it's linked to in the ungoogled-chromium project github).
Why does it create another user and put files under /home/linuxbrew/? Answer:
The script installs Homebrew to its default, supported, best prefix (/opt/homebrew for Apple Silicon, /usr/local for macOS Intel and /home/linuxbrew/.linuxbrew for Linux) so that you don’t need sudo after Homebrew’s initial installation when you brew install.
Where's the logic in that? Why not just install to the user's home directory so that you don't even need root access in the first place?
Why is installing from the tarball unsupported and so frowned upon? FFS isn't this just supposed to be a package manager? Why is everything so complicated and opinionated when compared to pip, cargo, Flatpak, etc? Compare this mess to Golang's install and uninstall process where you literally just need to tar -xzf a file or rm -rf a directory.
Where’s the logic in that? Why not just install to the user’s home directory so that you don’t even need root access in the first place?
Excellent remark! Wow, that by itself already wrote it off for me.
Why is sudo hard-coded? Answer: it’s to prevent people from using doas and other sudo alternatives.
Another home-run! Especially as I've been a staunch user of doas for quite a while now and wouldn't like to give up on that. Thank you so much for informing me on this!
Your third point is also interesting to ponder upon, though it wasn't as impactful to me personally as the previous two were.
I would like to thank you once again for your astoundingly awesome insights on this matter! This comment has definitely contributed the most in me letting go of the thought of using Homebrew entirely (while some others already informed me that GUI-apps (mostly) can't be installed from Homebrew to function on Linux anyways).
I've been using Homebrew on Linux for several years and never had an issue. As others have said, it will not be able to provide GUI applications (in most cases) as on macOS, but it is a great way to get system and indie software alike
Thank you for your input, it's heart-breaking to hear that it's not able to provide GUI applications (and thus browsers by extension). But I'm glad to hear that it has provided you a decent experience so far!
Once x86 macOS became stable around snow leopard I switched from Linux to macOS full time on my mobile machines. For years home brew was a shining light to get a decent tool chain installed to be able to do development. But somewhere around the time they changed to naming macOS releases after places in California, both home brew and macOS started changing in ways that made it harder to maintain a stable development environment. Why and when did it start deciding to upgrade every package I have installed when I try to install a new package? It regularly broke both mine and our developers’ machines and I finally had enough of both. Stay away from home brew if you want your working development environment to continue working 6 months later. It WILL break when you need it most and cost you hours if not days of work to fix. I’ve never ran home brew on Linux but it’s honestly not anything I would ever consider even when it worked well.
Thanks for the insights! Do you know if these issues continue to persist?
Why and when did it start deciding to upgrade every package I have installed when I try to install a new package?
Is this perhaps related to how for most non-LTS distros (but especially on something like Arch) one is recommended to update all packages before installing a new package in hopes of preventing issues related to dependency hell? I don't know if Homebrew's model of packaging is similar enough to Linux' to make sensible comparisons between the two, but this was just something that came up to me as a thought.
I feel a bit lazy at the moment, but Brodie does IMO an excellent job at explaining what a package manager is within the context of Linux. I'd recommend you to watch that instead over here; it's already set to play at the correct time*.
I'm not necessarily opposed to it, as I do use them if they're inaccessible to me otherwise and if it's official and up-to-date. But for security-sensitive apps (like a browser) I would rather not rely on it. Furthermore, it seems it's unofficial anyways.